暴力:大数加法
Description Input Output Sample Input Sample Output #include <cstdio> #include <cstring> using namespace std; char s[100009]; int res[100009],len; void add() { res[len-1]++; int i=len-1; while(res[i]>9) { res[i--]=0; res[i]++; } } int sum() { int ans=0; for(int i=0; i<len; i++) ans+=res[i]; return ans%10; } int main() { int t; scanf("%d",&t); while(t--) { memset(res,0,sizeof res); scanf("%s",&s[1]); s[0]='0'; len=strlen(s); //printf("--------%sn",s); for(int i=0; i<len; i++) { res[i]=s[i]-'0'; } do { add(); } while(sum()!=0); int flag=0; for(int i=0; i<len; i++) { if(res[i]!=0) flag=1; if(flag) printf("%d",res[i]); } printf("n"); } return 0; } Reflect: 1,首先大数加法; 2,刚开始想着可能一步一步加会超时,然后仔细想想,其实根本就不会加多少步,并不会超时; 3,顶多会加到多一位,所以也不会像铺的大数加法一样 ,需要倒置; 4,由于要找比他大的数,所以用do_while; (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |