题目描述
我们规定,对于一个整数 a,如果其各位数字相加之和能够被 4 整除,则称它是一个特殊数字。
现在,给定一个整数 n,请你计算并输出不小于 n 的最小特殊数字。
输入格式
一个整数 n。
输出格式
一个整数,表示不小于 n 的最小特殊数字。
数据范围
对于 30% 的数据,1≤n≤100。
对于 100% 的数据,1≤n≤1000。
样例
输入样例:
42
输出样例:
44
算法1
(模拟) $O(n)$
简单模拟
时间复杂度
参考文献
python3代码
n = int(input())
for x in range(n, 1000000):
sum_ = 0
for c in str(x):
sum_ += int(c)
if sum_ % 4 == 0:
print(x)
break
C++ 代码
#include <bits/stdc++.h>
using namespace std;
bool check(int x)
{
int res = 0;
while(x > 0)
{
res += (x % 10);
x /= 10;
}
return res % 4 == 0;
}
int main()
{
int n; cin >> n;
while (check(n) == false)
n ++;
cout << n << endl;
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
大佬,我有点看不懂那个return res % 4 == 0; 这也是一个判断含义吗
题目不是让判断,各位数字相加之和能够被 4 整除吗?这就是在判断。