题目链接:https://ac.nowcoder.com/acm/contest/9983/D
官方给出的题解如下(枚举加判断)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int f(int x){
int cnt=0;
while(x){
cnt+=x%10,x/=10;
}
return cnt;
}
int main(){
ll n,t,i,j,k;
cin>>n;
for(i=n+1;i<=1e5;i++){
if(f(i)==f(n))break;
}
cout<<i;
}
我的题解如下:(仔细观察了一波倒是有些取巧,主要是观察了n的取值范围然后手动模拟了一波发现如:25+9=34 ==7 将两种情况分类就行,没有循环要稍微快一点)
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int n,year=0;
scanf("%d",&n);
if(n%10!=0)
{ year=n+9;}
else
{year=2102;}
cout<<year;
return 0;
}</cstdio></iostream>