C ++循环/数组

时间:2015-06-04 06:52:53

标签: c++

你能帮我解决这个问题吗?

创建一个接受正整数的程序,比如n,并输出总和最多的2个正整数的所有组合。

样品输出:
输入一个数字:10

10被描述为:

1 + 9 2 + 8 3 + 7 4 + 6 5 + 5

注意:使用循环或数组

感谢您的帮助!!

3 个答案:

答案 0 :(得分:1)

int main(){
    int n;
    cout<<"Enter a number: ";
    cin>>n;
    cout<<n<<" is defrayed as"<<endl;
    for(int i=1;i<=n/2;i++){
        cout<<i<<"+"<<n-i<<" ";
    }
    cout<<endl;
}

答案 1 :(得分:0)

int main(){
int no;
printf("Enter the no ");
scanf("%d",&no);
printf("The sum can be ----\n");
for(int i=1;i<n/2;i++){
    printf("%d + %d\n",i.n-i);
}
cout<<endl;
return 0;

}

答案 2 :(得分:0)

有一个例外。数字1不能表示为两个正数的总和。:)因此,对于此异常,下面的演示程序输出0 + 1 = 1

你在这里

#include <iostream>

int main()
{
    while ( true )
    {
        std::cout << "Enter a non-negative number (0-exit): ";

        unsigned int n = 0;
        std::cin >> n;

        if ( !n ) break;

        for ( unsigned int i = n == 1 ? 0 : 1, j = n - i; i <= j; i++, j-- )
        {
            std::cout << i << " + " << j << " = " << n << std::endl;
        }

        std::cout << std::endl;
    }
}

如果要按顺序输入1 10 0,则输出将为

Enter a non-negative number (0-exit): 1
0 + 1 = 1

Enter a non-negative number (0-exit): 10
1 + 9 = 10
2 + 8 = 10
3 + 7 = 10
4 + 6 = 10
5 + 5 = 10

Enter a non-negative number (0-exit): 0

三元运算符用于初始化循环变量i

unsigned int i = n == 1 ? 0 : 1

可以用以下方式替换

unsigned int i = n != 1

这就是循环语句看起来像

for ( unsigned int i = n != 1, j = n - i; i <= j; i++, j-- )