UVA10494 - If We Were a Child Again

题目地址http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1435

前面一个是大数需要字符串来存 后面一个定义long型就够了 计算的时候就是边做边把字符转换为数字

取余比较简单一点 可以边转边取余 转完输出结果就行了

除法 模拟手算 从头找 找第一个能被它整除的那一位 找到之后 就依次除就行了 除的结果存在一个整型数组里

#include <stdio.h>

#include <stdlib.h>

#include<string.h>

int main()

{

    long x, i, j, k ,s;

    int y,flag,r[1001];

    char c[1001],p;

    while(scanf("%s %c %ld", c, &p, &x)!=EOF)

    {

        s = 0;

        y = 1;

        j = 0;

        k = strlen(c);

        if(p == '/')

        {

            flag = 0;//标记一个变量 找到第一个之后 依次除下去 

            for(i = 0 ; i < k ; i++)

            {

                s= s*10+c[i]-'0';

                if(s>=x&&flag == 0)

                {

                    r[j++] = s/x;

                    s = s%x;

                    flag = 1;

                }

                else

                if(flag)

                {

                    r[j++] = s/x;

                    s = s%x;

                }

            }

            flag = 0;

            for(i = 0 ; i < j ; i++)

            {

                printf("%d",r[i]);

                flag = 1;

            }

             if(flag == 0)

             printf("0");

            puts("");

        }

        else

        {

            s = 0;

            for(i = 0 ; i < k; i++)

            {

                s = s*10+c[i]-'0';

                s = s%x;

            }

            printf("%ld\n", s);

        }
View Code
 1 #include <stdio.h>

 2 #include <stdlib.h>

 3 #include<string.h>

 4 int main()

 5 {

 6     long x, i, j, k ,s;

 7     int y,flag,r[1001];

 8     char c[1001],p;

 9     while(scanf("%s %c %ld", c, &p, &x)!=EOF)

10     {

11         s = 0;

12         y = 1;

13         j = 0;

14         k = strlen(c);

15         if(p == '/')

16         {

17             flag = 0;//标记一个变量 找到第一个之后 依次除下去 

18             for(i = 0 ; i < k ; i++)

19             {

20                 s= s*10+c[i]-'0';

21                 if(s>=x&&flag == 0)

22                 {

23                     r[j++] = s/x;

24                     s = s%x;

25                     flag = 1;

26                 }

27                 else

28                 if(flag)

29                 {

30                     r[j++] = s/x;

31                     s = s%x;

32                 }

33             }

34             flag = 0;

35             for(i = 0 ; i < j ; i++)

36             {

37                 printf("%d",r[i]);

38                 flag = 1;

39             }

40              if(flag == 0)

41              printf("0");

42             puts("");

43         }

44         else

45         {

46             s = 0;

47             for(i = 0 ; i < k; i++)

48             {

49                 s = s*10+c[i]-'0';

50                 s = s%x;

51             }

52             printf("%ld\n", s);

53         }

54     }

55     return 0;

56 }

 

 

你可能感兴趣的:(uva)