Calculate the Sum
Time Limit: 1000MS | Memory Limit: 10000KB |
Submissions: 72 | Accepted: 17 |
Sample Input
Sample Output
数据很大,10^10001次方,如果直接2重循环去遍历,肯定超过1ms,所以必须巧妙处理,考虑到每位的数字是0到9之间的,可以开一个数组,记录一下前一个数据中0到9这些数字分别有几个,这样就可以降低复杂度了。
#include<stdio.h>
#include<string.h>
char a[10001],b[10001];
int main()
{
int
t,i,j,sum,lena,lenb,c[10];
scanf("%d",&t);
while(t--)
{
sum=0;
memset(c,0,sizeof(c));
scanf("%s%s",a,b);
lena=strlen(a);
lenb=strlen(b);
for(i=0;i<lena;i++)
++c[a[i]-'0'];
for(i=0;i<lenb;i++)
for(j=0;j<10;j++)
sum+=j%(b[i]-'0')*c[j];
printf("%d\n",sum);
}
}