zoukankan      html  css  js  c++  java
  • UVA

    题目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  } 
  • 相关阅读:
    第二周总结
    个人总结
    软件设计模式7
    软件设计模式6
    软件设计模式5
    软件设计模式4
    软件设计模式3
    软件设计模式2
    软件设计模式1
    软件构造2
  • 原文地址:https://www.cnblogs.com/bendandedaima/p/9366083.html
Copyright © 2011-2022 走看看