zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    python使用消息队列RabbitMq(入门)
    python Condition类(锁)
    python锁
    python多线程的几种情形分析-三种情况
    git基本使用
    python学习笔记之数据类型、字符编码、文件处理
    NOIP2018提高组模拟题(五)
    10.28模拟赛
    差分+树状数组【p4868】Preprefix sum
    线段树【p2706】贪婪大陆
  • 原文地址:https://www.cnblogs.com/shangyu/p/2552339.html
Copyright © 2011-2022 走看看