nojy 105 九的余数

 

九的余数

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
 
描述

现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数。

 
输入
第一行有一个整数m(1<=m<=8),表示有m组测试数据;
随后m行每行有一个自然数n。
输出
输出n整除九之后的余数,每次输出占一行。
样例输入
3
4
5
465456541
样例输出
4
5
4
来源
[苗栋栋]原创
上传者
苗栋栋
 
思路分析:由数学知识可知,1%9=1,那么10%9=1,100%9=1;1000%9=1。。。。。依次类推,2%9=2,   200%9=2。。。。同理可得3%9.  4%9  5%9 6%9 7%9 8%9 9%9 所以最后输入这个数对9的余数就等于这个数各个位上的数字之和对9的取余即可
由于输入数字位数太长, 故采用字符数组存放  。剩下的就横简单了
 
代码:
#include "stdio.h"
#include "string.h"
#define N 1001000
char s[N];
int main()
{    int i,j,k,n;
    int  sum;
    scanf("%d",&n);
    while(n--)
     { memset(s,'0',sizeof(s));  
       scanf("%s",s);
       k=strlen(s);
       sum=0;
       for(i=k-1,j=0;i>=0;i--)        
         {sum=(sum+(s[i]-'0'))%9;    //获得各个位上累加和
         
         }
         printf("%d ",sum);
       /*  for(i=j-1;i>=0;i--)
         printf("%d",a[i]);
         printf(" ");*/
     }
     return 0;
     }
原文地址:https://www.cnblogs.com/songmingtao/p/3225366.html