码迷,mamicode.com
首页 > 其他好文 > 详细

UVA - 10494-If We Were a Child Again(大数相除和取余)

时间:2018-07-25 16:23:08      阅读:208      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!