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 }
  • 相关阅读:
    (转)MapReduce中的两表join几种方案简介
    Java 网络编程(转)
    RDD的转换操作---RDD转换过程
    mapreduce 实现pagerank
    mapreduce 实现矩阵乘法
    Spark Standalone运行过程
    (转)MapReduce二次排序
    (转)《深入理解java虚拟机》学习笔记10——并发编程(二)
    jetty启动源码分析
    tomcat源码分析 Http11Processor process
  • 原文地址:https://www.cnblogs.com/shangyu/p/2552339.html
Copyright © 2011-2022 走看看