暴力:大数加法
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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |