zoukankan      html  css  js  c++  java
  • HDU1013 Digital Roots

           题目:HDU1013

           题意为读入一个整数求他的Digital Roots 

           注意:读入的整数可能很长,用int ,long long可能都会WA,考虑使用字符串。

          方法一:每读入一个字符,将其转化为数字后与sum相加,sum为最后的结果。

                        代码:

    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    
    int main()
    {
        char s[1000];
        while(scanf("%s",s))
        {
            if(s[0]=='0') break;
            int sum=0;
            for(int i=0;s[i]!='';i++)
            {
               sum+=s[i]-'0';
               if(sum>9)sum=sum%10+sum/10;
            }
            cout<<sum<<endl;
        }
    }
    
    
        方法二:利用数论的结论:Digtial Roots=(sum-1)%9+1

                      代码:

    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    
    int main()
    {
        char s[1000];
        while(scanf("%s",s))
        {
            if(s[0]=='0') break;
            int sum=0;
            for(int i=0;s[i];i++)
            {
               sum+=s[i]-'0';
               //if(sum>9)sum=sum%10+sum/10;
            }
            cout<<(sum-1)%9+1<<endl;
        }
    }
    

  • 相关阅读:
    #什么是spring#
    spark sql 判断一列是否包含某字符
    win10 安装微软商店
    python获取一段时间的日期
    css 网格
    css 网格属性总结
    css flex容器属性总结
    CSS Flexbox
    响应式Web设计
    css 伪类选择器
  • 原文地址:https://www.cnblogs.com/Wu-Shi/p/5410066.html
Copyright © 2011-2022 走看看