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。
  • 相关阅读:
    骑士飞行棋第二版(已完善)
    骑士飞行棋第一版(掷骰子方法分开)
    do -while语句的使用
    随机数例子(Random)
    Day6_time模块
    Day6_正则表达式
    Day6_内置函数
    centos6-7克隆主机网卡无法启动问题
    rsync+innotify做到同步式更新
    apache压力测试工具的apache bench和JMeter的安装
  • 原文地址:https://www.cnblogs.com/nylg-haozi/p/3182369.html
Copyright © 2011-2022 走看看