zoukankan      html  css  js  c++  java
  • nyoj-105-九的余数

     1 #include<stdio.h>
     2 #include<algorithm>
     3 #include<string.h>
     4 using namespace std;
     5 char a[1000001];
     6 int main()
     7 {
     8     int n;
     9     scanf("%d",&n);
    10     getchar();
    11     while(n--)
    12     {
    13         scanf("%s",a);
    14         int len=strlen(a),i=0,sum=0;
    15         while(i<len)
    16         {
    17             sum+=a[i]-'0';
    18             i++;
    19         }
    20         printf("%d
    ",sum%9);
    21     }
    22     return 0;
    23 }


    自然数123456789101112……198919901991被9除,余数是几? 根据“一个数被9除的余数,等于它各位数字之和被9除的余数”这一“弃九法”的原理,考虑本题的答案,只须考虑: A=1+2+3+4+5+6+7+8+9+1+0+1+1+……+1+9+8+9+1+9+9+0+1+9+9+1被9的余数,并将它与如下的B作比较: B=1+2+3+4+5+6+7+8+9+10+11+……+1989+1990+1991。 由于B中的每个数,都对应A中若干个数字之和(即该数的各位数字之和,如B中的+10就与A中的+1+0对应;B中的1991就与A中的+1+9+9+1对应).而两者对9来说,余数都是一样的[如B中1991÷9=221……2;A中的(1+9+9+1)÷9=20÷9=2……2].也就是说,它们可以互相替换,被9除时,不会影响余数.根据这个道理:A÷9与B÷9的余数是相等的.而后者是前1991个自然数的和,可以每9个数作为一段,即: B=(1+2+3+……+8+9)+(10+11+……+18+19)+……+(1981+……+1989)+1990+1991。 而每一段都能被9整除,最后剩下两个数,它除以9余数为3.所以本题答案应是:余数是3。
  • 相关阅读:
    阅读笔记
    学习小记
    networkx学习笔记
    ORM查询简化
    redis等缓存
    redis相关缓存知识
    Centos7网络配置
    redis安装详细
    redis安装详细
    mobaxterm使用手册
  • 原文地址:https://www.cnblogs.com/nylg-haozi/p/3182369.html
Copyright © 2011-2022 走看看