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

Posted bendandedaima

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA - 10494-If We Were a Child Again(大数相除和取余)相关的知识,希望对你有一定的参考价值。

题目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("
");
35         }
36         else
37             printf("%d
",temp);//输出 
38      } 
39  } 

 

以上是关于UVA - 10494-If We Were a Child Again(大数相除和取余)的主要内容,如果未能解决你的问题,请参考以下文章

《We Were Here》Steam限时免费游玩 双人合作游戏

Uva 11151 - Longest Palindrome

UVA11151 Longest Palindrome最长回文

pymysql报错 takes 1 positional argument but 2 were given

越狱Season 1-Episode 11: And Then There Were 7-M

How do I find what queries were executing in a SQL memory dump?-----stack