一位数 (2015年 JXNU_ACS 算法组暑假第一次周赛)

一位数

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 17   Accepted Submission(s) : 9

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

对于一个正整数,递归使用如下的规则总是可以使它成为一位数,这个规则是,让这个数等于其各个数位上的数字之和,直到这个数成为一位数为止,例如,对于n=192,则n=1+9+2=12,继续使用规则,n=1+2=3,故输入192,最后输出3.

Input

输入有多组测试数据,每组包含一个正整数n(0<=n<=10^1000000).

Output

输出一个一位数,这个一位数是通过n不断地使用规则产生的。

Sample Input

192

Sample Output

3

Author

吴迎



Statistic | Submit | Back

很简单的一道题 就是用scanf接收超时了  用的getchar

#include <stdio.h>
int main()
{
	char ch;
	int sum=0,temp;
	while(~(ch=getchar()))
	{
		if(ch>='0'&&ch<='9')
		sum+=ch-'0';
		if(sum>=10)
		temp=sum%10,sum=sum/10+temp;
		if(!(ch>='0'&&ch<='9'))
		printf("%d\n",sum),sum=0;
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 11:20:52

一位数 (2015年 JXNU_ACS 算法组暑假第一次周赛)的相关文章

递减打印最大的N位数到1 (2015年 JXNU_ACS 算法组暑假第一次周赛)

递减打印最大的N位数到1 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 21   Accepted Submission(s) : 4 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 给定一个数字N,M,递减打印最大的N位数到1的前M

区间最小值 线段树 (2015年 JXNU_ACS 算法组暑假第一次周赛)

区间最小值 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 12   Accepted Submission(s) : 5 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 给定一个数字序列,查询随意给定区间内数字的最小值. Input

区间最小值(2) (线段树 更新区间)2015年 JXNU_ACS 算法组暑假第一次周赛

区间最小值(2) Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 26   Accepted Submission(s) : 9 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 给定一个数字序列以及一些操作,查询任意给定区间内数字的最小

分水果 DP(2015年 JXNU_ACS 算法组暑假第一次周赛)

分水果 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 16   Accepted Submission(s) : 7 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 给定n个水果,每个水果都有一个重量,分成两堆,怎么分才使得分得的重量

2015 年 JXNU_ACS 算法组寒假第二次周赛

2015 年 JXNU_ACS 算法组寒假第二次周赛 比赛链接:http://acm.hdu.edu.cn/diy/contest_show.php?cid=26246 Start Time : 2015-02-01 13:00:00 End Time : 2015-02-01 17:30:00 终榜:http://acm.hdu.edu.cn/diy/contest_ranklist.php?cid=26246&page=1 这次比赛考查的知识都很基础,甚至还有几道就是C语言基础(比如1006

2015/10/13 算法习题:最大子列和问题

已经正式开始学习数据结构和算法,先学了网易云课堂上的浙江大学的数据结构课,是陈越和何钦铭上的,了解了什么是数据结构和算法后,学习了一些时间空间复杂度分析的技巧,结合之前马虎掌握的学习,先从简单的题目入手学习. 题目是这样的: 给定了一个n个整数组成的序列,求它各个子列中,子列和最大的值. 输入:输入n个整数组成的序列 要求输出最大子列和. 示例: 输入: -2 11 -4 13 -5 -2 输出: 20 做出这题的难度不是很大,至少很容易可以做到暴力求解,然而暴力求解的时间复杂度是很大的. 我用

2的幂位数大整数分治算法

#include <iostream> #include <cstring> #include <string> #include <cstdio> using namespace std; //500 digits at most struct Num{ int num[1000],len; Num(){ memset(num,0,sizeof(num)); len=1; } Num(const string &s){ len=s.size();

Daily English - 2015/01/30 – 算法(排序)

(function () { /* 通排序 最快最简单的排序 */ var data = [100, 50, 75, 25, 1, 20, 90, 30, 80, 40, 60, 50], result = [], barrel = [], i, j, item; //初始化桶 m = 桶数 for (i = 0; i < 101; i++) { barrel[i] = 0; } //插入桶 n = 排序数的个数 for (i = 0; item = data[i]; i++) { barrel

Daily English - 2015/02/02 – 算法(结构)

/* queue FIFO */ (function () { var queue = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'], iHead = 0, iTail = queue.length, result = []; while (iHead !== iTail) { result.push(queue[iHead]); queue[iHead] = null; iHead++; //if (iHead === iTai