阅读程序写结果:
#include<iostream>
using namespace std;
int main()
{
int i, a, b, c, d, f[4];
for(i = 0; i < 4; i++) cin >> f[i];
a = f[0] + f[1] + f[2] + f[3];
a = a / f[0];
b = f[0] + f[2] + f[3];
b = b / a;
c = (b * f[1] + a) / f[2];
d = f[(b / c ) % 4];
if(f[(a + b + c + d) % 4] > f[2])
cout << a + b<< endl;
else
cout << c + d << endl;
return 0;
}输入:9 19 29 39
看到整数除法 → 先想舍去小数;看到取模 → 先算整除再取余;看到 if 下标 → 先算总和再取模。
整数除法易被当成浮点运算;取模顺序易错为 b/(c%4);if 下标漏加 a,b,c 导致越界。
考点:程序模拟|整数运算
输入四个数到数组 f,按公式依次计算 a、b、c、d,最后根据 if 条件输出 a+b 或 c+d。