标签:clu div include break ring 记录 soft 清零 mil
题目vj上的链接:https://vjudge.net/problem/UVA-10494
参考博客:https://blog.csdn.net/yanduoxuan/article/details/51972079
题意:第一个数是没规定范围的,无限大= =,然后中间一个符号代表要进行‘/’还是‘%’,第二个数的范围在2^31也就是在int的范围内。
思路:用数组循环记录余数或者商值,最后输出数组。如果是除法输出前要跳过前面的零。(但由于temp*10的时候可能超过2^31所以第二个数其实是要用long long的,具体看代码)
1 #include<stdio.h> 2 #include<string.h> 3 long long n1[10000000]; 4 int main() 5 { 6 char s[100000]; 7 char choose; 8 long long number;//long long类型 9 int cnt;//标记数组下标 10 while (scanf("%s %c %lld",s,&choose,&number)!=EOF) 11 { 12 memset(n1,0,sizeof(n1));//数组清零 13 int len=strlen(s); 14 cnt=0;//标记数组下标 15 long long temp=0;//long long 类型 16 for(int i=0;i<len;i++) 17 { 18 temp=temp*10+s[i]-‘0‘; 19 n1[cnt++]=temp/number; 20 temp=temp%number; 21 } 22 if(choose==‘/‘) 23 { 24 int flag=0; 25 for(int i=0;i<len;i++)//跳过前导零 26 { 27 if(flag==0&&n1[i]!=0) 28 { 29 flag=i;break; 30 } 31 } 32 for(int i=flag;i<len;i++) 33 printf("%d",n1[i]);//输出数组 34 printf("\n"); 35 } 36 else 37 printf("%d\n",temp);//输出 38 } 39 }
UVA - 10494-If We Were a Child Again(大数相除和取余)
标签:clu div include break ring 记录 soft 清零 mil
原文地址:https://www.cnblogs.com/bendandedaima/p/9366083.html