编写一个程序,要求用户输入非负整数X和Y.使用循环,在从X开始并在Y结束处添加和乘以整数之间交替。如果数字是偶数,则将其添加到总数中。如果数字是奇数,则乘以它。例如,如果X = 5且Y = 10,则程序应计算((5 + 6)* 7 + 8)* 9 + 10 = 775。如果X = 2且Y = 5,则计算(2 * 3 + 4)* 5 = 50。
我知道如何分割偶数和奇数,但我不知道如何将它组合在一起。
答案 0 :(得分:1)
正确解释:
第一步是检查输入是否正确(y大于x且两个值均为正值)。
然后,您初始化将用于将结果返回到x
的变量(因为我们始终根据您提供给我们的示例从x
开始):int res = x;
。< / p>
你有循环:因为我们从x
开始,只需从x+1
循环到y
(包括在内,再次根据你给我们的例子):{{1} }
在此循环中,您具有当前值,如果此当前值为偶数,则将其添加到结果变量(for(int i = x+1 ; i <= y; i+=1)
),否则(奇怪)将结果乘以当前值({{ 1}})。
在循环之后,您可以返回结果变量并完成作业。
/!\ SPOILER:完整的代码
这是完整的代码
res += i;
我刚刚补充说,如果输入不是“有效”,它会返回-1。
答案 1 :(得分:0)
假设您正在循环X
到Y
而i
是循环中的迭代器/当前数字,tot
是您要输出的总数,你的循环,
当i
是偶数时:
tot += i;
当i
为奇数时:
tot *= i;
您还必须为tot
选择合适的起始值。
我会发布完整的代码,但似乎这是一项任务。
答案 2 :(得分:0)
首先,检查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;