原题链接:STIPC-002_A.涛涛的签到题
A.涛涛的签到题
题目描述
嘿,欢迎来到涛涛专场!先给大家透露一下,本次的题目都非常友善哦!!放轻松,从眼前这道签到题开始入手把,希望你能体验到 A K ( A l l − K i l l e d ) AK(All-Killed) AK(All−Killed) 的快乐。
涛涛最近刚刚学习了 C C C语言基础知识,木木豙殳 g i e g i e giegie giegie随手出了一道题目就把涛涛难到了。热心的你看到了这一幕,决定帮助涛涛完成。
这个难题是这么说的:对于某一个年份 n n n ,想知道大于 n n n 且与 n n n 的数位和相同的最小年份是多少。输入格式
一个正整数 n n n。
输出格式
输出一个正整数代表答案。
输入输出样例
样例一:
输入:
2021 2021 2021
输出:
2030 2030 2030说明/提示
2021 2021 2021的数位和为: 2 + 0 + 2 + 1 = 5 2+0+2+1=5 2+0+2+1=5。
2030 2030 2030的数位和为: 2 + 0 + 3 + 0 = 5 2+0+3+0=5 2+0+3+0=5。
【数据范围】:
2021 ≤ n ≤ 2030 2021≤n≤2030 2021≤n≤2030
题目解析:
本题签到题,只需要使用简单的除
10
10
10 取余操作得到数位和后,再使用循环判断语句进行查找与输入年份数位和相等的那个年份就好了。
当然本题由于太过基础,也可以直接手算得到答案
2021
−
2029
2021-2029
2021−2029 对应答案为
2030
−
2038
2030-2038
2030−2038 ,
2030
2030
2030 对应答案为
2102
2102
2102。
AC代码(C++):
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int a,b,sum=0;
scanf("%d",&a);
b=a+1;
while(a!=0)
{
sum+=(a%10);
a/=10;
}
for(int i=b; ;i++)
{
int c=i,csum=0;
while(c!=0)
{
csum+=(c%10);
c/=10;
}
if(csum==sum)
{
printf("%d",i);
return 0;
}
}
return 0;
}