求和求到手软

描述

LN想要知道大家的小学数学好不好。

现在他想让你求出几个数的和。

你能搞定么?

输入
多组测试数据

一组测试数据一行。

输出
一个数sum,表示结果。(保证在 int 范围内)
样例输入
2 3 5
5 6 7 8
1 2 3 4 5 6 7 8 9 10
样例输出
10
26
55
代码如下
这道题考察的点很清晰,就是对输入数据的处理。
如果每组测试数据的 n 个数得到后,求和就非常简单,而且保证在int范围内。

如果用普通的整数输入的话,每组测试数据之间没有明显的区分度。所以我们应该有个直觉是转化成字符串读入,而后进行求和。
#include<stdio.h>
#include<string.h>
int main()
{
	char a[100000];
	int i,sum,t;
	while(gets(a))
	{
		sum=0;t=0;
		for(i=0;a[i];i++)
		{
			if(a[i]==' ')
			{
				t+=sum;
				sum=0;
			}
			else
				sum=sum*10+(a[i]-'0');
		}
		t+=sum;
		printf("%d\n",t);
	}

	return 0;
}


时间: 2024-10-10 10:16:04

求和求到手软的相关文章

求和求到手软(字符串处理)

1 #include <iostream> 2 #include <stdio.h> 3 #include <math.h> 4 #include <algorithm> 5 using namespace std; 6 char a[10010]; 7 int main() 8 { 9 int i,sum,t; 10 while(gets(a)){ 11 sum=0;t=0; 12 for(i=0;a[i];i++){ 13 if(a[i]==' '){

1106 排序(类似求和求到手软)

Problem Description 输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0). 你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出. Input 输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000. 输入数据保证:分割得到的非负整数不会大于100000000:输入数据不可能

HYSBZ 1036 树链剖分(单点更新区间求和求最大值)

http://www.lydsy.com/JudgeOnline/problem.php?id=1036 Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身 Input 输入

线段树经典操作模板(单点更新,替换;区间更新,替换;区间求和求最值)

对于线段树的讲解此篇不再赘述,下面列出线段树应用中最常用的几种操作的代码.(具体题目未贴出,仅供有一定基础者参考代码风格) 另外,注意多组输入要写scanf("%d%d",&n,&m)!=EOF,线段树的题肯定要用c语言的输入输出,要使用字符数组,不用字符串,输入字符的时候要加getchar()吞噬空行.. (1)单点增减,区间求和: #include<iostream> #include<stdio.h> #include<string&

zzuli1783: 简单的求和---求因子和

1783: 简单的求和 Description 定义f(i)代表i的所有因子和(包括1和i),给定一个l,r.求f(l)+f(l+1)+...+f(r). Input 第一行输入一个t(t<1000),代表有t组测试数据,接下来每行输入两个数字l,r,(1<=l<=r<=1000000). Output 每行输出一个整数,代表和. Sample Input 2 1 2 3 4 Sample Output 4 11 #include <iostream> #include

5th 13.10.21数组求和 求最大数

01求1+2+3+4+5+...+10 1先创建变量用来保存相加和 2便利1到10 3让保存的变量与for循环变量相加, 在赋值给保存和的变量 int sum = 0; for(i=0;i<=10;i++){ sum += i; } sop(sum); 02:求数组的和 1先创建变量用来保存相加和 2便利数组 3让保存的变量与for循环变量相加, 在赋值给保存和的变量 int[] array = new int[]{45,4,45,4,5,4,} int sum = 0; for(int=0;i

求和游戏——java

1006. 求和游戏 Description 石柱上有一排石头键盘,每个键上有一个整数.请你在键盘上选择两个键,使这两个键及其之间的键上的数字和最大.如果这个最大的和不为正,则输出“Game Over". Input Format 第1行:键的个数n. 第2..n+1行:键上的数字整数 ai. −100≤ai≤100 对于70%的数据,2≤n≤1,000 对于100%的数据,2≤n≤1,000,000 Output Format 一行,最大和或者”Game Over". Sample

表的求和及计算

DISTINCT() 过滤重复COUNT() 统计个数 SELECT COUNT(DISTINCT(cateid)) FROM cs_goods ORDER BY cateid SELECT COUNT(*) FROM cs_goods SUM() 求和 求price列总和 SELECT SUM(price) FROM cs_goods 求每个月总销售额 SELECT SUM(price),SUBSTRING(FROM_UNIXTIME(createtime),1,7) AS ymonth FR

求平均数-----类数组转换成数组

求平均数的代码function avgFn() { 首先把arguments转化为数组 var ary = []; for (var i = 0; i < arguments.length; i++) { ary.push(arguments[i]); ary[ary.length] = arguments[i]; } 数组排序 ary.sort(function (a, b) { return a - b; }); 掐头去尾 ary.unshift(); ary.pop(); 求和求平均值,小