信息学奥赛一本通 题目列表第二页合辑(1036-1072)

1036:A×B问题

【题目描述】

输入两个正整数AA和BB,求A×BA×B的值。注意乘积的范围和数据类型的选择。

【输入】

一行,包含两个正整数AA和BB,中间用单个空格隔开。1≤A,B≤500001≤A,B≤50000。

【输出】

一个整数,即 A×BA×B 的值。

【输入样例】

3 4

【输出样例】

12
#include<stdio.h>
int main(void)
{
	int A, B;
	long long p;
	scanf("%d %d", &A, &B);
	p = (long long)A * B;
	printf("%lld", p);
	return 0;
}

1037:计算2的幂

【题目描述】

给定非负整数nn,求2n2n的值,即22的nn次方。

【输入】

一个整数nn。0≤n<310≤n<31。

【输出】

一个整数,即22的nn次方。

【输入样例】

3

【输出样例】

8
#include<stdio.h>
#include<math.h>
int main(void)
{
	int n;
	scanf("%d", &n);
	long long result;
	result = pow(2,n);
	printf("%lld", result);
	return 0;
}

1038:苹果和虫子

【题目描述】

你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

【输入】

输入仅一行,包括n,x和y(均为整数)。

【输出】

输出也仅一行,剩下的苹果个数。

【输入样例】

10 4 9

【输出样例】

7
#include<stdio.h>
int main(void)
{
	int n, x, y;
	scanf("%d %d %d", &n, &x, &y);
	if (y % x != 0)
		if((n - (y / x + 1)) >= 0)
			printf("%d", n - (y / x + 1));
		else
			printf("0");
	else
		if((n - y / x) >= 0)
			printf("%d", n - y / x);
		else
			printf("0");
	return 0;
}

2051:【例3.1】偶数

【题目描述】

读入一个正整数a,如果a为偶数输出yes

【输入】

一个正整数a。

【输出】

偶数输出yes,否则什么也不输出。

【输入样例】

12

【输出样例】

yes
#include<stdio.h>
int main(void)
{
	int a;
	scanf("%d", &a);
	if (a > 0 && a % 2 == 0)
		printf("yes");
	else
		printf("");
	return 0;
}

2052:【例3.2】范围判断

【题目描述】

读入一个整数,若这个数大于1并且小于100,则输出yes

【输入】

一个整数

【输出】

满足条件输出yes,否则不输出。

【输入样例】

76

【输出样例】

yes
#include<stdio.h>
int main(void)
{
	int a;
	scanf("%d", &a);
	if (a > 1 && a < 100)
		printf("yes");
	else
		printf("");
	return 0;
}

2053:【例3.3】三个数

【题目描述】

输入三个整数,按从大到小的顺序输出。

【输入】

输入三个整数

【输出】

按从大到小的顺序输出。

【输入样例】

3 2 1

【输出样例】

3 2 1
#include<stdio.h>
int main(void)
{
	int a, b, c, t;
	scanf("%d %d %d", &a, &b, &c);
	if (a < b)
	{
		t = a;
		a = b;
		b = t;
	}
	if (a < c)
	{
		t = a;
		a = c;
		c = t;
	}
	if (b < c)
	{
		t = b;
		b = c;
		c = t;
	}
	printf("%d %d %d", a, b, c);
	return 0;
}

2054:【例3.4】适合晨练

【题目描述】

输入温度t的值,判断是否适合晨练。(25≤t≤30,则适合晨练ok!,否则不适合no!)

【输入】

输入温度tt的值。

【输出】

输出判断结果

【输入样例】

26

【输出样例】

ok!
#include<stdio.h>
int main(void)
{
	int t;
	scanf("%d", &t);
	if (t >= 25 && t <= 30)
		printf("ok!");
	else
		printf("no!");
	return 0;
}

2055:【例3.5】收费

【题目描述】

乘坐飞机时,当乘客行李小于等于20公斤时,按每公斤1.68元收费,大于20公斤时,按每公斤1.98元收费,编程计算收费(保留2位小数)。

【输入】

行李重量。

【输出】

费用(保留2位小数)。

【输入样例】

20.00

【输出样例】

33.60
#include<stdio.h>
int main(void)
{
	double weight;
	scanf("%lf", &weight);
	if (weight <= 20)
		printf("%.2lf", weight * 1.68);
	else
		printf("%.2lf", weight * 1.98);
	return 0;
}

2056:【例3.7】最大的数

【题目描述】

输入三个数,输出其中最大的数。

【输入】

输入三个数。

【输出】

其中最大的数。

【输入样例】

1.01 2 3.22

【输出样例】

3.22
#include<stdio.h>
int main(void)
{
	double a, b, c, t;
	scanf("%lf %lf %lf", &a, &b, &c);
	if (a < b)
	{
		if (b > c)
			t = b;
		else
			t = c;
	}
	else
	{
		if (a > c)
			t = a;
		else
			t = c;
		
	}
	printf("%g", t);
	return 0;
}

1039:判断数正负

【题目描述】

给定一个整数N,判断其正负。如果N>0,输出positive;如果N=0,输出zero;如果N<0,输出negative

【输入】

一个整数N(−109≤N≤109)。

【输出】

如果N>0, 输出positive;

如果N=0, 输出zero;

如果N<0, 输出negative

【输入样例】

1

【输出样例】

positive
#include<stdio.h>
int main(void)
{
	int N;
	scanf("%d", &N);
	if (N > 0)
		printf("positive");
	else if (N == 0)
		printf("zero");
	else
		printf("negative");
	return 0;
}

1040:输出绝对值

【题目描述】

输入一个浮点数,输出这个浮点数的绝对值,保留到小数点后两位。

【输入】

输入一个浮点数,其绝对值不超过10000。

【输出】

输出这个浮点数的绝对值,保留到小数点后两位。

【输入样例】

-3.14

【输出样例】

3.14
#include<stdio.h>
#include<math.h>
int main(void)
{
	double a, b;
	scanf("%lf", &a);
	b = fabs(a); //fabs()对浮点数求绝对值,abs()对整型求绝对值
	printf("%.2lf", b);
	return 0;
}

1041:奇偶数判断

【题目描述】

给定一个整数,判断该数是奇数还是偶数。如果n是奇数,输出odd;如果n是偶数,输出even。

【输入】

输入仅一行,一个大于零的正整数n。

【输出】

输出仅一行,如果n是奇数,输出odd;如果n是偶数,输出even。

【输入样例】

5

【输出样例】

odd
#include<stdio.h>
int main(void)
{
	int n;
	scanf("%d", &n);
	if (n % 2 != 0)
		printf("odd");
	else
		printf("even");
	return 0;
}

1042:奇偶ASCII值判断

【题目描述】

任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出NO。例如,字符A的ASCII值是65,则输出YES,若输入字符B(ASCII值是6666),则输出NO。

【输入】

输入一个字符。

【输出】

如果其ASCII值为奇数,则输出YES,否则,输出NO。

【输入样例】

A

【输出样例】

YES
#include<stdio.h>
int main(void)
{
	char c;
	scanf("%c", &c);
	int m = c;
	if (m % 2 != 0)
		printf("YES");
	else
		printf("NO");
	return 0;
}

1043:整数大小比较

【题目描述】

输入两个整数,比较它们的大小。若x>y,输出>;若x=y,输出=;若x<y,输出<。

【输入】

一行,包含两个整数x和y,中间用单个空格隔开。0≤x<232, −231≤y<231。

【输出】

一个字符。若x>y,输出 > ;若x=y,输出 = ;若x<y,输出 < ;

【输入样例】

1000 100

【输出样例】

>
#include<stdio.h>
int main(void)
{
	int x, y;
	scanf("%d %d", &x, &y);
	if (x > y)
		printf(">");
	else if (x == y)
		printf("=");
	else
		printf("<");
	return 0;
}

1044:判断是否为两位数

【题目描述】

判断一个正整数是否是两位数(即大于等于10且小于等于99)。若该正整数是两位数,输出1,否则输出0。

【输入】

一个正整数,不超过1000。

【输出】

一行。若该正整数是两位数,输出1,否则输出0。

【输入样例】

54

【输出样例】

1
#include<stdio.h>
int main(void)
{
	int n;
	scanf("%d", &n);
	if (n >= 10 && n <= 99)
		printf("1");
	else
		printf("0");
	return 0;
}

1045:收集瓶盖赢大奖

【题目描述】

某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有10个印有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。现分别给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。若可以兑换大奖,输出1,否则输出0。

【输入】

一行,包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空格隔开。

【输出】

一行。若可以兑换大奖,输出1,否则输出0。

【输入样例】

11 19

【输出样例】

1
#include<stdio.h>
int main(void)
{
	int m, n;
	scanf("%d %d", &m, &n);
	if (m >= 10 || n >= 20)
		printf("1");
	else
		printf("0");
	return 0;
}

1046:判断一个数能否同时被3和5整除

【题目描述】

判断一个数n 能否同时被3和5整除,如果能同时被3和5整除输出YES,否则输出NO。

【输入】

输入一行,包含一个整数n。( -1,000,000 < n < 1,000,000)

【输出】

输出一行,如果能同时被3和5整除输出YES,否则输出NO。

【输入样例】

15

【输出样例】

YES
#include<stdio.h>
int main(void)
{
	int n;
	scanf("%d", &n);
	if (n % 3 == 0 && n % 5 == 0)
		printf("YES");
	else
		printf("NO");
	return 0;
}

1047:判断能否被3,5,7整除

【题目描述】

给定一个整数,判断它能否被3,5,7整除,并输出以下信息:

1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格);

2、只能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5或者3 7或者5 7,中间用空格分隔);

3、只能被其中一个数整除(输出这个除数);

4、不能被任何数整除,输出小写字符‘n’,不包括单引号。

【输入】

输入一行,包括一个整数。

【输出】

输出一行,按照描述要求给出整数被3,5,7整除的情况。

【输入样例】

105

【输出样例】

3 5 7
#include<stdio.h>
int main(void)
{
	int n;
	scanf("%d", &n);
	if (n % 3 == 0 && n % 5 == 0 && n % 7 == 0)
		printf("3 5 7");
		
	if (n % 3 == 0 && n % 5 != 0 && n % 7 != 0)
		printf("3");
	if (n % 5 == 0 && n % 3 != 0 && n % 7 != 0)
		printf("5");
	if (n % 7 == 0 && n % 5 != 0 && n % 3 != 0)
		printf("7");
		
	if (n % 3 == 0 && n % 5 == 0 && n % 7 != 0)
		printf("3 5");
	if (n % 3 == 0 && n % 5 != 0 && n % 7 == 0)
		printf("3 7");
	if (n % 5 == 0 && n % 7 == 0 && n % 3 != 0)
		printf("5 7");
		
	if (n % 5 != 0 && n % 7 != 0 && n % 3 != 0)
		printf("n");
	return 0;
}//因时间原因未思考简编方法

1048:有一门课不及格的学生

【题目描述】

给出一名学生的语文和数学成绩,判断他是否恰好有一门课不及格(成绩小于60分)。若该生恰好有一门课不及格,输出1;否则输出0。

【输入】

一行,包含两个在0到100之间的整数,分别是该生的语文成绩和数学成绩。

【输出】

若该生恰好有一门课不及格,输出1;否则输出0。

【输入样例】

50 80

【输出样例】

1
#include<stdio.h>
int main(void)
{
	int n, m;
	scanf("%d %d", &n, &m);
	if ((n < 60 && m > 60) || (n > 60 && m < 60))
		printf("1");
	else
		printf("0");
	return 0;
}

2057:【例3.9 】星期几

【题目描述】

根据输入的表示星期几的数字,对应输出它的英文名称。

1、星期一:Monday

2、星期二:Tuesday

3、星期三:Wednesday

4、星期四:Thursday

5、星期五:Friday

6、星期六:Saturday

7、星期日:Sunday

错误输入请输出:input error!

【输入】

输入的表示星期几的数字。

【输出】

对应输出它的英文名称。

【输入样例】

1

【输出样例】

Monday

#include<stdio.h>
int main(void)
{
	int n;
	scanf("%d", &n);
	switch(n)
	{
		case 1:
			printf("Monday");
			break;
		case 2:
			printf("Tuesday");
			break;
		case 3:
			printf("Wednesday");
			break;
		case 4:
			printf("Thursday");
			break;
		case 5:
			printf("Friday");
			break;
		case 6:
			printf("Saturday");
			break;
		case 7:
			printf("Sunday");
			break;
		default:
			printf("input error!");
			break;
	}
	return 0;
}

2058:【例3.10】简单计算器

【题目描述】

一个最简单的计算器支持+,-,*,/四种运算。输入只有一行:两个参加运算的数和一个操作符(+,-,*,/)。输出运算表达式的结果。考虑下面两种情况:

(1)如果出现除数为0的情况,则输出:Divided by zero!

(2)如果出现无效的操作符(即不为+,-,*,/之一),则输出:Invalid operator!

【输入】

一行,前面两个数,再一个运算符号。

【输出】

运算表达式的结果。

【输入样例】

34 56 +

【输出样例】

90

【提示】

【样例2】

输入:

2 1.2 -

输出:

0.8
#include<stdio.h>
int main(void)
{
	double m, n;
	char c;
	scanf("%lf %lf %c", &m, &n, &c);
	if (c != '+' && c != '-' && c != '*' && c != '/')
		printf("Invalid operator!");
	else
	{
		if (c == '+')
			printf("%g", m + n);
		else if (c == '-')
			printf("%g", m - n);
		else if (c == '*')
			printf("%g", m * n);
		else
		{
			if (n == 0)
				printf("Divided by zero!");
			else
				printf("%g", m / n);
		}
	}
	return 0;
}

2059:【例3.11】买笔

【题目描述】

期末来临了,班长小Q决定将剩余班费x元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为6元、5元和4元。小Q想买尽量多的笔(鼓励尽量多的同学),同时他又不想有剩余钱。请您编一程序,帮小Q制订出一种买笔的方案。

【输入】

一个正整数x(剩余班费)。

【输出】

一行,依次为6元、5元和4元钱笔的数目,用一个空格隔开。

【输入样例】

10

【输出样例】

1 0 1

#include<stdio.h>
int main(void)
{
	int x, a, b, c, y;
	scanf("%d", &x);
	c = x / 4;
	y = x % 4;
	switch(y)
	{
		case 0:
			a = 0;
			b = 0;
			break;
		case 1:
			a = 0;
			b = 1;
			c--;
			break;
		case 2:
			a = 1;
			b = 0;
			c--;
			break;
		case 3:
			a = 1;
			b = 1;
			c -= 2;
			break;
	}
	printf("%d %d %d", a, b, c);
	return 0;
}

1049:晶晶赴约会

【题目描述】

晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1、3、5有课必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出YES;如果不能则输出NO。注意YES和NO都是大写字母!

【输入】

输入有一行,贝贝邀请晶晶去看展览的日期,用数字1到7表示从星期一到星期日。

【输出】

输出有一行,如果晶晶可以接受贝贝的邀请,输出YES,否则,输出NO。注意YES和NO都是大写字母!

【输入样例】

2

【输出样例】

YES

#include<stdio.h>
int main(void)
{
	int n;
	scanf("%d", &n);
	if (n == 1 || n == 3 || n == 5)
		printf("NO");
	else
		printf("YES");
	return 0;
}

1050:骑车与走路

【题目描述】

在清华校园里,没有自行车,上课办事会很不方便。但实际上。并非去办任何事情都是骑车快,因为骑车总要找车、开锁、停车、锁车等,这要耽误一些时间。假设找到自行车,开锁并骑上自行车的时间为27秒;停车锁车的时间为23秒;步行每秒行走1.2米,骑车每秒行走3.0米。请判断走不同的距离去办事,是骑车快还是走路快。如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。

【输入】

输入一行,包含一个整数,表示一次办事要行走的距离,单位为米。

【输出】

输出一行,如果骑车快,输出一行"Bike";如果走路快,输出一行"Walk";如果一样快,输出一行"All"。

【输入样例】

120

【输出样例】

Bike

#include<stdio.h>
int main(void)
{
	double x;
	scanf("%lf", &x);
	if ((x / 3.0 + 50) > (x / 1.2))
		printf("Walk");
	else
		printf("Bike");
	return 0;
}

1051:分段函数

【题目描述】

编写程序,计算下列分段函数y=f(x)的值。结果保留到小数点后三位。

    y=−x+2.5;0≤x<5

    y=2−1.5(x−3)(x−3);5≤x<10

    y=x2−1.5;10≤x<20

【输入】

一个浮点数N(0≤N<20)。

【输出】

输出 NN 对应的分段函数值:f(N)。结果保留到小数点后三位。

【输入样例】

1.0

【输出样例】

1.500

#include<stdio.h>
int main(void)
{
	double N;
	scanf("%lf", &N);
	if (N >= 0 && N < 5)
		printf("%.3lf", 2.5 - N);
	if (N >= 5 && N < 10)
		printf("%.3lf", 2 - 1.5 * (N - 3) * (N - 3));
	if (N >= 10 && N < 20)
		printf("%.3lf", N / 2 - 1.5);
	return 0;
}

1052:计算邮资

【题目描述】

根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。

【输入】

输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。

【输出】

输出一行,包含一个整数,表示邮费。

【输入样例】

1200 y

【输出样例】

17

#include<stdio.h>
int main(void)
{
	int a, s;
	char c;
	scanf("%d %c", &a, &c);
	if (a <= 1000)
		s = 8;
	else
	{
		if ((a - 1000) % 500 == 0)
			s = 8 + (a - 1000) / 500 * 4;
		else
			s = 8 + ((a - 1000) / 500 + 1) * 4;
	}
	if (c == 'y')
		printf("%d", s + 5);
	else
		printf("%d", s);
	return 0;
}

1053:最大数输出

【题目描述】

输入三个整数,数与数之间以一个空格分开。 输出一个整数,即最大的整数。

【输入】

输入为一行,包含三个整数,数与数之间以一个空格分开。

【输出】

输出一行,包含一个整数,即最大的整数。

【输入样例】

10 20 56

【输出样例】

56
#include<stdio.h>
int main(void)
{
	int a, b, c, t;
	scanf("%d %d %d", &a, &b, &c);
	if (a > b)
		t = a;
	else
		t = b;
	if (a > c)
		t = a;
	else
	{
		if (b > c)
			t = b;
		else
			t = c;
	}
	printf("%d", t);
	return 0;
}

1054:三角形判断

【题目描述】

给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形。如果能构成三角形,则输出“yes”,否则输出“no”。

【输入】

输入共一行,包含三个正整数,分别表示三条线段的长度,数与数之间以一个空格分开。

【输出】

如果能构成三角形,则输出“yes” ,否则输出“no”。

【输入样例】

3 4 5

【输出样例】

yes

#include<stdio.h>
int main(void)
{
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);
	if (a + b > c && a + c > b && b + c > a)
		printf("yes");
	else
		printf("no");
	return 0;
}

1055:判断闰年

【题目描述】

判断某年是否是闰年。如果公元a年是闰年输出Y,否则输出N。

【输入】

输入只有一行,包含一个整数a(0 < a < 3000)。

【输出】

一行,如果公元a年是闰年输出Y,否则输出N。

【输入样例】

2006

【输出样例】

N

#include<stdio.h>
int main(void)
{
	int a;
	scanf("%d", &a);
	if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)
		printf("Y");
	else
		printf("N");
	return 0;
}

1056:点和正方形的关系

【题目描述】

有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断一个给定的点是否在这个正方形内(包括正方形边界)。如果点在正方形内,则输出yes,否则输出no。

【输入】

输入一行,包括两个整数x、y,以一个空格分开,表示坐标(x,y)。

【输出】

输出一行,如果点在正方形内,则输出yes,否则输出no。

【输入样例】

1 1

【输出样例】

yes

#include<stdio.h>
int main(void)
{
	int x, y;
	scanf("%d %d", &x, &y);
	if ((x >= -1 && x <= 1) && (y >= -1 && y <= 1))
		printf("yes");
	else
		printf("no");
	return 0;
}

1057:简单计算器 

【题目描述】

一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。然而:

   1. 如果出现除数为0的情况,则输出:Divided by zero!

   2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!

【输入】

输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。

【输出】

输出只有一行,一个整数,为运算结果。然而:

   1.如果出现除数为0的情况,则输出:Divided by zero!

   2.如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!

【输入样例】

1 2 +

【输出样例】

3

#include<stdio.h>
int main(void)
{
	int m, n;
	char c;
	scanf("%d %d %c", &m, &n, &c);
	if (c != '+' && c != '-' && c != '*' && c != '/')
		printf("Invalid operator!");
	else
	{
		if (c == '+')
			printf("%d", m + n);
		else if (c == '-')
			printf("%d", m - n);
		else if (c == '*')
			printf("%d", m * n);
		else
		{
			if (n == 0)
				printf("Divided by zero!");
			else
				printf("%d", m / n);
		}
	}
	return 0;
}

1058:求一元二次方程

【题目描述】

利用公式x1=−b+√b^2−4ac/2a,x2=−b-√b^2−4ac/2a,求一元二次方程ax^2+bx+c=0的根,其中a不等于0。结果要求精确到小数点后55位。

【输入】

输入一行,包含三个浮点数a,b,c(它们之间以一个空格分开),分别表示方程ax^2+bx+c=0的系数。

【输出】

输出一行,表示方程的解。

若两个实根相等,则输出形式为:“x1=x2=...”;

若两个实根不等,在满足根小者在前的原则,则输出形式为:“x1=...;x2=...“;

若无实根输出“No answer!”。

所有输出部分要求精确到小数点后5位,数字、符号之间没有空格。

【输入样例】

-15.97 19.69 12.02

【输出样例】

x1=-0.44781;x2=1.68075

#include<stdio.h>
#include<math.h>
int main(void)
{
	double a, b, c, d, e, f;
	scanf("%lf %lf %lf", &a, &b, &c);
	if (b * b - 4 * a * c < 0)
		printf("No answer!");
	else
	{
		d = sqrt(b * b - 4 * a * c);
		if (d == 0)
			printf("x1=x2=%.5lf", -b / (2 * a));
		else
		{
			e = (-b + d) / (2 * a);
			f = (-b - d) / (2 * a);
			if (e < f)
				printf("x1=%.5lf;x2=%.5lf", e, f);
			else
				printf("x1=%.5lf;x2=%.5lf", f, e);
		}
	}
	return 0;
}

2016:【例4.1】for循环求和

【题目描述】

利用for循环。计算输出1+2+3+...+n的和。

【输入】

输入n。

【输出】

如题述,之和。

【输入样例】

10

【输出样例】

55

【提示】

【数据规模及约定】

对于100%的数据,1≤n≤100。

#include<stdio.h>
int main(void)
{
	int n, i, sum = 0;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		sum = sum + i;
	}
	printf("%d", sum);
	return 0;
}

2017:【例4.2】输出偶数

【题目描述】

按照由小到大的顺序,输出1∼n之间的所有偶数。

【输入】

输入n。

【输出】

输出为一行,各个偶数之间用一个空格隔开。

【输入样例】

10

【输出样例】

2 4 6 8 10

【提示】

【数据规模及约定】

对于所有数据,1≤n≤100。

#include<stdio.h>
int main(void)
{
	int n, i;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		if (i % 2 == 0)
			printf("%d ", i);
	}
	return 0;
}

2018:【例4.3】输出奇偶数之和

【题目描述】

利用for循环,分别输出1∼n之间的所有奇数的和、偶数的和。

【输入】

输入n。

【输出】

输出为一行,两个数(用一个空格隔开),偶数之和与奇数之和。

【输入样例】

10

【输出样例】

30 25

【提示】

【数据规模及约定】

对于所有数据,1≤n≤100。

#include<stdio.h>
int main(void)
{
	int n, s1 = 0, s2 = 0, i;
	scanf("%d", &n);
	for (i = 1; i <= n; i ++)
	{
		if (i % 2 == 0)
			s1 = s1 + i;
		else
			s2 = s2 + i;
	}
	printf("%d %d", s1, s2);
	return 0;
}

2019:【例4.4】求阶乘

【题目描述】

利用for循环求n!的值。

提示,n!=1×2×...×n。

【输入】

输入一个正整数n。

【输出】

输出n!的值。

【输入样例】

4

【输出样例】

24

【提示】

【数据规模及约定】

对于所有数据,1≤n≤20。

#include<stdio.h>
int main(void)
{
	int n, i;
	long long s = 1;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		s = s * i;
	}
	printf("%llu", s);
	return 0;
}

1059:求平均年龄

【题目描述】

班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。

【输入】

第一行有一个整数n(1<= n <= 100),表示学生的人数。其后n行每行有1个整数,表示每个学生的年龄,取值为15到25。

【输出】

输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。

【输入样例】

2
18
17

【输出样例】

17.50

#include<stdio.h>
int main(void)
{
	int n, i, sum = 0, g;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%d", &g);
		sum = sum + g;
	}
	printf("%.2lf", sum * 1.00 / n);
	return 0;
}

1060:均值

【题目描述】

给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。

【输入】

输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。

【输出】

输出一行,包含一个浮点数,表示均值,精确到小数点后4位。

【输入样例】

2
1.0 3.0

【输出样例】

2.0000

#include<stdio.h>
int main(void)
{
	int n, i;
	double g, s = 0;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%lf", &g);
		s = s + g;
	}
	printf("%.4lf", s / n);
	return 0;
}

1061:求整数的和与均值

【题目描述】

读入n(1≤n≤10000)个整数,求它们的和与均值。

【输入】

输入第一行是一个整数n,表示有n个整数。

第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。

【输出】

输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。

【输入样例】

4
344
222
343
222

【输出样例】

1131 282.75000

#include<stdio.h>
int main(void)
{
	int n, i, sum = 0, g;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		scanf("%d", &g);
		sum += g;
	}
	printf("%d %.5lf", sum, sum * 1.0 / n);
	return 0;
}

1062:最高的分数

【题目描述】

孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?

【输入】

输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。

【输出】

输出一个整数,即最高的成绩。

【输入样例】

5
85 78 90 99 60

【输出样例】

99

#include<stdio.h>
int main(void)
{
	int n, t = 0, i;
	scanf("%d", &n);
	int a[n];
	for (i = 0; i < n; i++)
	{
		scanf("%d", &a[i]);
		if (t < a[i])
			t = a[i];
	}
	printf("%d", t);
	return 0;
}

1063:最大跨度值

【题目描述】

给定一个长度为n的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值减去最小值)。

【输入】

一共2行,第一行为序列的个数n(1 <= n <= 1000),第二行为序列的n个不超过1000的非负整数,整数之间以一个空格分隔。

【输出】

输出一行,表示序列的最大跨度值。

【输入样例】

6
3 0 8 7 5 9

【输出样例】

9

#include<stdio.h>
int main(void)
{
	int n, max, min, i;
	scanf("%d", &n);
	int a[n];
	for (i = 0; i < n; ++i)
	{
		scanf("%d", &a[i]);
	}
	max = a[0];
	min = a[0];
	for (i = 1; i < n; ++i)
	{
		if (max < a[i])
			max = a[i];
		if (min > a[i])
			min = a[i];
	}
	printf("%d", max - min);
	return 0;
}

1064:奥运奖牌计数

【题目描述】

2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。输入第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目。输出4个整数,为A国所获得的金、银、铜牌总数及总奖牌数。

【输入】

输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。

【输出】

输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。

【输入样例】

3
1 0 3
3 1 0
0 3 0

【输出样例】

4 4 3 11

#include<stdio.h>
int main(void)
{
	int n, i, k, js = 0, ys = 0, ts = 0;
	scanf("%d", &n);
	int num[n][3];
	for (i = 0; i < n; i++)
	{
		int j = 0, y = 0, t = 0;
		scanf("%d %d %d", &j, &y, &t);
		js += j;
		ys += y;
		ts += t;
	}
	printf("%d %d %d %d", js, ys, ts, js + ys + ts);
	return 0;
}

1065:奇数求和

【题目描述】

计算非负整数m到n(包括m和n)之间的所有奇数的和,其中,m 不大于 n,且n 不大于300。例如 m=3,n=12, 其和则为:3+5+7+9+11=35。

【输入】

两个数 m 和 n,两个数以一个空格分开,其中 0≤m≤n≤300 。

【输出】

输出一行,包含一个整数,表示m 到 n(包括m 和 n )之间的所有奇数的和

【输入样例】

7 15

【输出样例】

55

#include<stdio.h>
int main(void)
{
	int m, n, i, s = 0;
	scanf("%d %d", &m, &n);
	for (i = m; i <= n; i++)
	{
		if (i % 2 != 0)
			s += i;
	}
	printf("%d", s);
 	return 0;
}

1066:满足条件的数累加

【题目描述】

将正整数m和n之间(包括m和n)能被17整除的数累加,其中0<m<n<1000。

【输入】

一行,包含两个整数m和n,其间,以一个空格间隔。

【输出】

输出一行,包行一个整数,表示累加的结果。

【输入样例】

50 85

【输出样例】

204

#include<stdio.h>
int main(void)
{
	int m, n, i, s = 0;
	scanf("%d %d", &m, &n);
	for (i = m; i <= n; i++)
	{
		if (i % 17 == 0)
			s += i;
	}
	printf("%d", s);
 	return 0;
}

1067:整数的个数

【题目描述】

给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。

【输入】

输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。

【输出】

输出有三行,第一行为1出现的次数,第二行为5出现的次数,第三行为10出现的次数。

【输入样例】

5
1 5 8 10 5

【输出样例】

1
2
1

#include<stdio.h>
int main(void)
{
	int k, num, a = 0, b = 0, c = 0, i;
	scanf("%d", &k);
	for (i = 1; i <= k; i++)
	{
		scanf("%d", &num);
		if (num == 1)
			a += 1;
		if (num == 5)
			b += 1;
		if (num == 10)
			c += 1;
	}
	printf("%d\n", a);
	printf("%d\n", b);
	printf("%d", c);
	return 0;
}

1068:与指定数字相同的数的个数

【题目描述】

输出一个整数序列中与指定数字相同的数的个数。输入包含2行:第1行为N和m,表示整数序列的长度(N<=100)和指定的数字;第2行为N个整数,整数之间以一个空格分开。输出为N个数中与m相同的数的个数。

【输入】

第1行为N和m,表示整数序列的长度(N<=100)和指定的数字, 中间用一个空格分开;

第2行为N个整数,整数之间以一个空格分开。

【输出】

输出为N个数中与m相同的数的个数。

【输入样例】

3 2
2 3 2

【输出样例】

2
#include<stdio.h>
int main(void)
{
	int N, m, count = 0, num, i;
	scanf("%d %d", &N, &m);
	for (i = 1; i <= N; i++)
	{
		scanf("%d", &num);
		if (num == m)
			count += 1;
	}
	printf("%d", count);
	return 0;
}

1069:乘方计算

【题目描述】

给出一个整数a和一个正整数n(−1000000≤a≤1000000,1≤n≤10000,求乘方a^n,即乘方结果。最终结果的绝对值不超过1000000。

【输入】

一行,包含两个整数a和n。−1000000≤a≤1000000,1≤n≤10000,1≤n≤10000。

【输出】

一个整数,即乘方结果。题目保证最终结果的绝对值不超过1000000。

【输入样例】

2 3

【输出样例】

8

#include<stdio.h>
int main(void)
{
	int a, n, i, k = 1;
	scanf("%d %d", &a, &n);
 	for (i = 1; i <= n; i++)
	{
		k *= a;
	}
	printf("%d", k);
	return 0;
}

1070:人口增长

【题目描述】

我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?保留小数点后四位。

【输入】

一行,包含两个整数x和n,分别是人口基数和年数,以单个空格分隔。

【输出】

输出最后的人口数,以亿为单位,保留到小数点后四位。1<=x<=100,1<=n<=100。

【输入样例】

13 10

【输出样例】

13.1306

#include<stdio.h>
int main(void)
{
	int n, i;
	double x;
	scanf("%lf %d", &x, &n);
	for (i = 1; i <= n; i++)
	{
		x = x * (1 + 0.001);
	}
	printf("%.4lf", x);
	return 0;
}

1071:菲波那契数

【题目描述】

菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。

【输入】

输入一行,包含一个正整数k。(1 ≤ k ≤ 46)

【输出】

输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小。

【输入样例】

19

【输出样例】

4181

#include<stdio.h>
int main(void)
{
	int k, i;
	scanf("%d", &k);
	int a[k];
	a[0] = 1;
	a[1] = 1;
	for (i = 2; i < k; i++)
	{
		a[i] = a[i - 1] + a[i - 2];
	}
	printf("%d", a[k - 1]);
	return 0;
}

1072:鸡尾酒疗法

【题目描述】

鸡尾酒疗法,指“高效抗逆转录病毒治疗”。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。下面给出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进疗法。请写程序判定各种改进疗法效果如何。

【输入】

第一行为整数n(1<n<=20);其余n行每行两个整数,第一个整数是临床实验的总病例数(小于等于10000),第二个疗效有效的病例数。这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。

【输出】

有n-1行输出,分别表示对应改进疗法的效果:如果效果更好,输出better;如果效果更差,输出worse;否则输出same。

【输入样例】

5
125 99
112 89
145 99
99 97
123 98

【输出样例】

same
worse
better
same

#include<stdio.h>
int main(void)
{
	int n, i;
	scanf("%d", &n);
	double x, y, j, k;
	int flag[n+1];
	flag[0] = 1;
	flag[1] = 1;
	scanf("%lf %lf", &j, &k);
	x = k / j;
	printf("%lf", k);
	for (i = 2; i <= n; i++)
	{
		double a, b;
		scanf("%lf %lf", &a, &b);
		y = b / a;
		if (y - x > 0.05)
			flag[i] = 2;
		else if (x - y > 0.05)
			flag[i] = 0;
		else
			flag[i] = 1;
	}
	for (i = 2; i <= n; i++)
	{
		if (flag[i] == 2)
			printf("better\n");
		if (flag[i] == 0)
			printf("worse\n");
		if (flag[i] == 1)
			printf("same\n");
	}
	return 0;
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值