题目链接:http://codeforces.com/problemset/problem/1183/A
其实就是模拟,就是求输入的数值中每一位相加的和能否被4整除,就是将每一位的数值放入数组中,相加求和,不能被整除就加1,要注意进位。
AC代码
#include<iostream> #include<cstring> using namespace std; int weishu[8]; int main() { int a; cin>>a; int tempW[8]; int pos=0; while(a) { tempW[pos++]=a%10; a=a/10; } for(int i=0;i<pos;i++) { weishu[i]=tempW[pos-i-1]; } while(1) { int sum=0; for(int j=0;j<pos;j++) { sum+=weishu[j]; } if(sum%4==0)break; int i; for(i=pos-1;i>=0;i--) { if(weishu[i]<9) { weishu[i]++; break; } weishu[i]=0; } if(i==-1) { pos++; // memset(weishu,0,sizeof(weishu)); weishu[0]=1; } } int num=0; for(int i=0;i<pos;i++) { num=weishu[i]+num*10; } cout<<num<<endl; return 0; }
CSU-暑假集训题 Nearest Interesting Number
原文:https://www.cnblogs.com/xlbfxx/p/11244453.html