标签:print names logs main mem color return name --
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4608
题意:给定一个数X,注意X是个大数,X的长度不超过1e5。
让你求出一个Y,满足三个条件,Y>X && Y%10==0 还有就是满足以上两个条件最小的。
思路:我想的这个题的意思就是个大数加法。让X加上1~10循环试一下肯定有符合题意的。
AC代码:
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int INF=0x3f3f3f3f; const int maxn=1e5+5; char str[maxn]; int num[maxn],a[maxn],b[maxn]; int main() { int T; scanf("%d",&T); while(T--) { cin>>str; int l=strlen(str); int sum=0; for(int i=0; i<l; i++)///0是最高位 num[i]=str[i]-‘0‘; for(int i=0; i<l; i++) b[i]=num[l-1-i]; ///0是最低位 int len; for(int k=1; k<=20; k++) { memset(a,0,sizeof(a)); for(int i=0; i<l; i++)a[i]=b[i]; len=l; a[0]+=k; for(int i=0; i<len; i++) { a[i+1]+=a[i]/10; a[i]%=10; } while(a[len]) { a[len+1]=a[len]/10; a[len]%=10; len++; } int ans=0; for(int i=0; i<len; i++) ans+=a[i]; if(ans%10==0) break; } for(int i=len-1; i>=0; i--) printf("%d",a[i]); puts(""); } return 0; }
标签:print names logs main mem color return name --
原文地址:http://www.cnblogs.com/a-clown/p/6801146.html