zoukankan      html  css  js  c++  java
  • CCF NOI1035 数根

    问题链接CCF NOI1035 数根




    时间限制: 1000 ms  空间限制: 262144 KB

    题目描述

      数根是这样定义的:对于一个正整数n,将它的各个数位上的数字相加得到一个新数,如果这个数是一位数,我们就称之为n的数根,否则重复处理直到它成为一个一位数。
      例如,n=34,3+4=7,7是一位数,所以7是34的数根。
      再如,n=345,3+4+5=12,1+2=3,3是一位数,所以3是345的数根。
      对于输入数字n,编程计算它的数根。

    输入

      输入正整数n。

    输出

      输出n的数根。

    样例输入

    345

    样例输出

    3

    数据范围限制

      1<=n<2^31




    问题分析

      这是一个计算数根的问题

     人们通常使用10进制,对于一个10进制整数,用除数10除(/)和取余数(%)运算是常用的运算。这两个运算分别是10进制右移一位运算和取个位数运算,程序中运用十分广泛。

    程序说明

      函数numberroot()封装了计算一个数的数根的功能。

    要点详解
    • 把功能封装到函数中,可以使得程序更加简洁。
    • 要根据数据范围限制来选用变量的类型。



    参考链接I00026 计算数根

    100分通过的C语言程序:

    #include <stdio.h>
    
    #define BASE 10
    
    int numberroot(int n)
    {
        int temp;
    
        while(n >= BASE) {
            temp = n;
    
            n = 0;
            while(temp) {
                n += temp % BASE;
                temp /= BASE;
            }
        }
    
        return n;
    }
    
    int main(void)
    {
        int n;
    
        scanf("%d", &n);
    
        printf("%d
    ", numberroot(n));
    
        return 0;
    }



  • 相关阅读:
    DNS
    报文组成
    简单的转义字符
    普通字符
    正则表达式介绍
    Mybatis_HelloWorld
    Mybatis介绍
    基本概念
    EGit应用
    EGit
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563909.html
Copyright © 2011-2022 走看看