你能帮我解决这个问题吗?
创建一个接受正整数的程序,比如n,并输出总和最多的2个正整数的所有组合。
样品输出:
输入一个数字:10
10被描述为:
1 + 9 2 + 8 3 + 7 4 + 6 5 + 5
注意:使用循环或数组
感谢您的帮助!!
答案 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-- )