zoukankan      html  css  js  c++  java
  • HDU 1013 Digital Roots 模拟题

    解题报告:

    题目大意:给定一个正整数N,求这个数的“根”,这里的根指的是:若N是个位数,则它的根就是N,若N是两位或两位以上的数,则的它的根就等于N的各位的和,若它的各位的和任然是两位或两位以上,则再求这个和的各位的和,直到这个各位的和是一个个位数。就是N的根。

    模拟题,但要注意的是这个N的范围很大,要用数组模拟。

     1 #include<cstdio>
     2 #include<cstring>
     3 int main() {
     4     int N,ans=0;
     5     char str[1000];
     6     while(scanf("%s",str)) {
     7         if(strlen(str)==1&&str[0]=='0')
     8         break;
     9         while(1) {
    10             int len=strlen(str);
    11             if(len==1) {
    12                 printf("%s\n",str);
    13                 break;
    14             }
    15             ans=0;
    16             for(int i=0;i<len;++i)
    17             ans+=str[i]-'0';
    18             int z=0;
    19             while(ans!=0) {
    20                 str[z++]=(ans%10)+'0';
    21                 ans/=10;
    22             }
    23             str[z]=NULL;
    24         }
    25     }
    26     return 0;
    27 }
    28              
    View Code
  • 相关阅读:
    “数学题”——传钱
    kafka笔记——入门介绍
    SpringBoot集成Dubbo+Zookeeper
    MySql基本语法
    动态规划
    总结
    Java反射
    软件清单
    Java IO操作
    Spring Boot AOP的使用
  • 原文地址:https://www.cnblogs.com/xiaxiaosheng/p/3100384.html
Copyright © 2011-2022 走看看