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