nyoj 105

九的余数

时间限制:3000 ms  |  内存限制:65535 KB

难度:3

描述

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

输入
第一行有一个整数m(1<=m<=8),表示有m组测试数据;

随后m行每行有一个自然数n。

输出
输出n整除九之后的余数,每次输出占一行。
样例输入
3
4
5
465456541
样例输出
4
5
4

思路:

看到此题位数为百万位,可以想象数是非常大的此时 我考虑到可以用数组存取大数

然后数组中每一位对九取余,剩下的余数dp,作为下组数据的十位数+个位数取余,如此循环。直到求出最后一位的余数,即为所求数的余数

代码如下:

#include<stdio.h>
#include<string.h>
char a[1000000];//此数组把数字当做字符串读取
int  s[1000000];//把字符数组转换存入整形数组中
int main()
{
   int m;
   scanf("%d",&m);
   while(m--)
   {
       int len,i,ans=0,dp=0;
	   scanf("%s",a);//读入字符串
       len=strlen(a);//计算长度
	   for(i=0;i<len;i++)
		   s[i]=a[i]-'0';//把字符串转化为整形存入数组
	   for(i=0;i<len;i++)
	   {
          ans=(s[i]+dp*10)%9;//求余数
		  dp=ans;//计算余数,作为下次求余数的十位数字
	   }
	   printf("%d\n",dp);//输出最后取得的余数,即为所求
   }
}
时间: 2024-08-26 01:34:17

nyoj 105的相关文章

NYOJ 105 九的余数

九的余数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数. 输入 第一行有一个整数m(1<=m<=8),表示有m组测试数据: 随后m行每行有一个自然数n. 输出 输出n整除九之后的余数,每次输出占一行. 样例输入 3 4 5 465456541 样例输出 4 5 4 #include<stdio.h> #include<string.h> char s

九的余数 NYOJ 105

1 #include<stdio.h>//九的余数(105) 2 #include<string.h> 3 char a[1000005]; 4 int main() 5 { 6 int x,t,i,res; 7 scanf("%d",&x); 8 while(x--){ 9 memset(a,0,sizeof(a)); 10 scanf("%s",a); 11 t=strlen(a); 12 if(t==1)res=(a[0]-'0

NYOJ 105 其余9个

九的余数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 如今给你一个自然数n,它的位数小于等于一百万,如今你要做的就是求出这个数整除九之后的余数. 输入 第一行有一个整数m(1<=m<=8),表示有m组測试数据. 随后m行每行有一个自然数n. 输出 输出n整除九之后的余数,每次输出占一行. 例子输入 3 4 5 465456541 例子输出 4 5 4 #include<stdio.h> #include<string.h> char

NYOJ 891 找点

找点 时间限制:2000 ms  |  内存限制:65535 KB 难度:2 描述 上数学课时,老师给了LYH一些闭区间,让他取尽量少的点,使得每个闭区间内至少有一个点.但是这几天LYH太忙了,你们帮帮他吗? 输入 多组测试数据. 每组数据先输入一个N,表示有N个闭区间(N≤100). 接下来N行,每行输入两个数a,b(0≤a≤b≤100),表示区间的两个端点. 输出 输出一个整数,表示最少需要找几个点. 样例输入 4 1 5 2 4 1 4 2 3 3 1 2 3 4 5 6 1 2 2 样例

nyoj 10 skiing

skiing 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载一个区域中最长底滑坡.区域由一个二维数组给出.数组的每个数字代表点的高度.下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 一个人可

NYOJ 115 城市平乱

城市平乱 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M. 现在,小工军师告诉南将军,第K号城市发生了暴乱,南将军从各个部队都派遣了一个分队沿最近路去往暴乱城市平乱. 现在已知在任意两个城市之间的路行军所需的时间,你作为南将军麾下最厉害的程序员,请你编写一个程序来告诉南将军第一个分队到达叛乱城市所需的时间. 注意,两个城市之间可能不只一条路.

NYOJ 905 卡片游戏

卡片游戏 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 小明最近宅在家里无聊,于是他发明了一种有趣的游戏,游戏道具是N张叠在一起的卡片,每张卡片上都有一个数字,数字的范围是0~9,游戏规则如下: 首先取最上方的卡片放到桌子上,然后每次取最上方的卡片,放到桌子上已有卡片序列的最右边或者最左边.当N张卡片全部都放到桌子上后,桌子上的N张卡片构成了一个数.这个数不能有前导0,也就是说最左边的卡片上的数字不能是0.游戏的目标是使这个数最小. 现在你的任务是帮小明写段程序,

nyoj 115------城市平乱( dijkstra // bellman )

城市平乱 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M. 现在,小工军师告诉南将军,第K号城市发生了暴乱,南将军从各个部队都派遣了一个分队沿最近路去往暴乱城市平乱. 现在已知在任意两个城市之间的路行军所需的时间,你作为南将军麾下最厉害的程序员,请你编写一个程序来告诉南将军第一个分队到达叛乱城市所需的时间. 注意,两个城市之间可能不只一条路.

NYOJ 99单词拼接(有向图的欧拉(回)路)

1 /* 2 NYOJ 99单词拼接: 3 思路:欧拉回路或者欧拉路的搜索! 4 注意:是有向图的!不要当成无向图,否则在在搜索之前的判断中因为判断有无导致不必要的搜索,以致TLE! 5 有向图的欧拉路:abs(In[i] - Out[i])==1(入度[i] - 出度[i])的节点个数为两个 6 有向图的欧拉回路:所有的节点都有In[i]==Out[i] 7 */ 8 #include<iostream> 9 #include<cstring> 10 #include<cs