1. 程式人生 > >《演算法筆記》2.10小節

《演算法筆記》2.10小節

這章就老實點按意圖用下scanf和printf吧...感覺語文水平被重新整理了?

問題 A: A+B 輸入輸出練習I

題目描述

你的任務是計算a+b。這是為了acm初學者專門設計的題目。你肯定發現還有其他題目跟這道題的標題類似,這些問題也都是專門為初學者提供的。

輸入

輸入包含一系列的a和b對,通過空格隔開。一對a和b佔一行。

輸出

對於輸入的每對a和b,你需要依次輸出a、b的和。

如對於輸入中的第二對a和b,在輸出中它們的和應該也在第二行。

樣例輸入

1 5
10 20

樣例輸出

6
30
#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF){
		printf("%d\n",a+b);
	}
	return 0;
}

問題 B: A+B 輸入輸出練習II

題目描述

你的任務是計算a+b。

輸入

第一行是一個整數N,表示後面會有N行a和b,通過空格隔開。

輸出

對於輸入的每對a和b,你需要在相應的行輸出a、b的和。

如第二對a和b,對應的和也輸出在第二行。

樣例輸入

2
1 5
10 20

樣例輸出

6
30
#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
	int N,a,b;
	scanf("%d",&N);
	while(N--){
		scanf("%d%d",&a,&b);
		printf("%d\n",a+b);
	}
	return 0;
}

問題 C: A+B 輸入輸出練習III

題目描述

你的任務是計算a+b。

輸入

輸入中每行是一對a和b。其中會有一對是0和0標誌著輸入結束,且這一對不要計算。

輸出

對於輸入的每對a和b,你需要在相應的行輸出a、b的和。

如第二對a和b,他們的和也輸出在第二行。

樣例輸入

1 5
10 20
0 0

樣例輸出

6
30
#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
	int a,b;
	while(scanf("%d%d",&a,&b),a||b){
		printf("%d\n",a+b);
	}
	return 0;
}

問題 D: A+B 輸入輸出練習IV

題目描述

你的任務是計算若干整數的和。

輸入

每行的第一個數N,表示本行後面有N個數。

如果N=0時,表示輸入結束,且這一行不要計算。

輸出

對於每一行資料需要在相應的行輸出和。

樣例輸入

4 1 2 3 4
5 1 2 3 4 5
0 

樣例輸出

10
15
#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
	int N;
	while(scanf("%d",&N),N)
	{
		int a,b=0;
		while(N--){
			scanf("%d",&a);
			b=a+b;
		}
		printf("%d\n",b);
		
	}
	return 0;	
}

有沒有更好的寫法?求推薦

問題 E: A+B 輸入輸出練習V

題目描述

你的任務是計算若干整數的和。

輸入

輸入的第一行是一個正數N,表示後面有N行。每一行的第一個數是M,表示本行後面還有M個數。

輸出

對於每一行資料需要在相應的行輸出和。

樣例輸入

2
4 1 2 3 4
5 1 2 3 4 5

樣例輸出

10
15
#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
	int M,N;
	scanf("%d",&N);
	while(scanf("%d",&M),N)
	{
		int a,b=0;
		while(M--){
			scanf("%d",&a);
			b=a+b;
		}
		printf("%d\n",b);
		N--;
	}
	return 0;	
}

問題 F: A+B 輸入輸出練習VI

題目描述

你的任務是計算若干整數的和。

輸入

每行的第一個數N,表示本行後面有N個數。

輸出

對於每一行資料需要在相應的行輸出和。

樣例輸入

4 1 2 3 4
5 1 2 3 4 5

樣例輸出

10
15
#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
	int N;

	while(scanf("%d",&N)!=EOF)
	{
		int a,b=0;
		while(N--){
			scanf("%d",&a);
			b=a+b;
		}
		printf("%d\n",b);

	}
	return 0;	
}

問題 G: A+B 輸入輸出練習VII

題目描述

你的任務是計算兩個整數的和。

輸入

輸入包含若干行,每行輸入兩個整數a和b,由空格分隔。

輸出

對於每組輸入,輸出a和b的和,每行輸出後接一個空行。

樣例輸入

1 5
10 20

樣例輸出

6

30
#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF){
		printf("%d\n\n",a+b);
	}
	return 0;
}

問題 H: A+B 輸入輸出練習VIII

題目描述

你的任務是計算若干整數的和。

輸入

輸入的第一行為一個整數N,接下來N行每行先輸入一個整數M,然後在同一行內輸入M個整數。

輸出

對於每組輸入,輸出M個數的和,每組輸出之間輸出一個空行。

樣例輸入

3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3

樣例輸出

10

15

6
#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
	int M,N;
	scanf("%d",&N);
	while(scanf("%d",&M),N)
	{
		int a,b=0;
		while(M--){
			scanf("%d",&a);
			b=a+b;
		}
		printf("%d\n",b);
		N--;
		if(N>0)printf("\n");
	}
	return 0;	
}