偶数和奇数的C++循环
问题描述:
编写一个程序,要求用户输入非负数的整数X和Y.使用一个循环,在X和Y之间添加和相乘整数。如果数字是偶数,将其添加到总数中。如果数字是奇数,则乘以它。例如,如果X = 5且Y = 10,则程序应计算((5 + 6)* 7 + 8)* 9 + 10 = 775。如果X = 2且Y = 5,则计算(2 * 3 + 4)* 5 = 50。偶数和奇数的C++循环
我知道如何拆分偶数和奇数,但我不知道如何把它放在一起。
答
假设你循环虽然X
到Y
和i
是在循环和tot
迭代器/电流数是总数,你将输出,你的循环中,
当i
甚至:
tot += i;
当i
是奇数:
tot *= i;
您也可以选择适当的starti ng值为tot
。
我会发布完整的代码,但似乎这是一项任务。
答
正确的解释:
第一步是检查输入是否正确(y大于x且两个值都是正值)。
然后你初始化你用来返回结果到x
(因为我们总是根据你给我们的例子从x
开始)使用的变量:int res = x;
。
的你有循环:因为我们从x
开始,只是循环从x+1
到y
(包括,再相应地与示例,您给我们):for(int i = x+1 ; i <= y; i+=1)
在这个循环中,你拥有的当前值,如果此当前值为偶数,将其添加到结果变量(res += i;
)中,否则(奇数)将结果乘以当前值(res *= i
)。
循环结束后,您可以返回结果变量并完成作业。
/\剧透:以下
这里完整的代码是完整的代码
int func(int x, int y){
if(y>x && x>0){
int res = x;
for(int i = x+1 ; i <= y ; i+=1){
if(i%2==0)
res += i;
else
res *= i;
}
return res;
}
return -1;
}
我只是说,它返回的事实-1如果输入不是“有效”的话。
答
首先检查y是否大于X.如果更大,运行一个从X开始到Y结束的循环。取一个存储总量的变量。如果循环变量甚至将该值添加到总变量中,并且如果循环变量是奇数,则将该值与总变量的值相乘。
int total=0;
if(y>x)
{
for(int i=x;i<=y;i++)
{
if(i%2==0) //if even
{
total += i;
}
else //if odd
{
total *= i;
}
}
}
cout<<total;
这是一个使用'std :: accumulate'的单线程。那么你准备好看到这个解决方案并且理解(使用你自己的研究)什么是“积累”? – PaulMcKenzie
'if(number%2 == 0){/ * it even * /} else {/ * it's odd * /} –