其他分享
首页 > 其他分享> > ZZULIOJ 1050~1059(oj入门题)

ZZULIOJ 1050~1059(oj入门题)

作者:互联网

ZZULIOJ 1050~1059

ZZULIOJ 1050: 阶乘的累加和

时间限制: 1 Sec 内存限制: 30 MB

题目描述

求1! + 2! + ……n!

输入

输入一个整数n,你可以假定n不大于10。

输出

输出一个整数,即阶乘累加的结果,单独占一行。
样例输入 Copy
4
样例输出 Copy
33

代码

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

ZZULIOJ 1051: 平方根的和

时间限制: 1 Sec 内存限制: 30 MB

题目描述

数列的定义如下:
数列的第一项为item,以后各项为前一项的平方根,求数列的前n项的和。

输入

由两个整数item(item<10000)和n(n<1000)组成,item和n的含义如前所述。

输出

输出该数列的和,占一行,要求精度保留2位小数。
样例输入 Copy
84 4
样例输出 Copy
97.93

代码

#include<stdio.h>
#include<math.h>
int main()
{
	int item, n;
	scanf("%d %d", &item, &n);
	double sum = 0;
	double t = item;
	for(int i = 1; i <= n; i++)
	{
		sum += t; 
		t = sqrt(t);
	}
	printf("%.2lf\n", sum);
	return 0;
}

ZZULIOJ 1052: 数列求和4

时间限制: 1 Sec 内存限制: 30 MB

题目描述

输入n和a,求a+aa+aaa+…aa…a(n个a),如当n=3,a=2时,2+22+222的结果为246

输入

包含两个整数,n和a,含义如上述,你可以假定n和a都是小于10的非负整数

输出

输出前n项和,单独占一行
样例输入 Copy
3 2
样例输出 Copy
246

代码

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

ZZULIOJ 1053: 正弦函数

时间限制: 1 Sec 内存限制: 128 MB

题目描述

输入x,计算上面公式的前10项和。

输入

输入一个实数x。

输出

输出一个实数,即数列的前10项和,结果保留3位小数。
样例输入 Copy
1
样例输出 Copy
0.841

代码

#include<stdio.h>
int main()
{
	double x, temp1, temp2;
	double sinx = 0;
	int t = 1;//变号 
	scanf("%lf", &x);
	temp1 = x; //分子 
	temp2 = 1;//分母 
	for(int i = 1; i <= 10; i++)
	{
		sinx += t * temp1 / temp2; 
		t = -t;
		temp1 = temp1 * x * x;
		temp2 = temp2 * 2 * i * (2 * i + 1);
	}
	printf("%.3lf\n", sinx);
	return 0;
}

ZZULIOJ 1054: 猴子吃桃

时间限制: 1 Sec 内存限制: 128 MB

题目描述

悟空第一天摘下桃子若干,当即吃掉一半,还不过瘾,又多吃一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?

输入

输入一个数n(1<=n<=30)。

输出

输出第一天的桃子个数。
样例输入 Copy
3
样例输出 Copy
10

代码

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

ZZULIOJ 1055: 兔子繁殖问题

时间限制: 1 Sec 内存限制: 128 MB

题目描述

这是一个有趣的古典数学问题,著名意大利数学家Fibonacci曾提出一个问题:有一对小兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。按此规律,假设没有兔子死亡,第一个月有一对刚出生的小兔子,问第n个月有多少对兔子?

输入

输入月数n(1<=n<=44)。

输出

输出第n个月有多少对兔子。
样例输入 Copy
3
样例输出 Copy
2

/*本题是一个经典的递推入门题目:
用f(n)表示第n个月的兔子数目,则:
f(n) = f(n-1) + 本月新生兔子数 而,
本月新生兔子数 = f(n-2) (因为上上个月已存在的每只兔子,
本月都会新生一只兔子) 所以,f(n) = f(n-1) + f(n-2) 
这就是著名的fabinacci数列,
后一项等于前两项的和: 1 1 2 3 5 8..... */

//方法一、用循环的方法来做 
#include<stdio.h>
int main()
{
	int n, t;
	scanf("%d", &n);
	int rabbit1 = 1;//第1个月兔子数 
	int rabbit2 = 1;//第2个月兔子数 
	for(int i = 3; i <= n; i++)
	{
		t = rabbit2;
		rabbit2 = rabbit1 + rabbit2;
		rabbit1 = t;
	}
	printf("%d\n", rabbit2);
	return 0;
} 

//方法2、用递归的方法来做
//大家可以用递归的代码,但是会显示时间超时
//分别用方法一和方法二输入 44 看看运行的时间
//由此可猜测 用递归的算法比一般的执行时间更长
#include<stdio.h>
int Fabinacci(int n)
{
	if(n <= 2)
		return 1;
	else
		return Fabinacci(n-1) + Fabinacci(n-2);
}
int main()
{
	int rabbit, n;
	scanf("%d", &n);
	rabbit = Fabinacci(n);
	printf("%d\n", rabbit);
	return 0;
} 

ZZULIOJ 1056: 幸运数字

时间限制: 1 Sec 内存限制: 128 MB

题目描述

小明对某些数字有偏爱,例如,他喜欢7的倍数,而不喜欢4的倍数,如果一个整数是7的倍数,而不是4的倍数,小明会认为这个数字是他的幸运数字。现在给定两个整数m和n,请你帮小明找m到n范围内的最大的幸运数字。如果m到n范围内没有幸运数字,则输出“no”

输入

两个正整数m和n(m < =n,且均小于10的9次方)

输出

一个整数,即m到n范围内的最大的幸运数字。
样例输入 Copy
90 100
样例输出 Copy
98

代码

#include<stdio.h>
int main()
{
	int m, n;
	int max = 0;//因为m和n都是正整数
	//可以用 max == 0 判断是否有幸运数字 
	scanf("%d %d", &m, &n);
	for(int i = m; i <= n; i++)
	{
		if(i % 7 == 0 && i % 4 != 0)
			max = i; 
	}
	if(max == 0)
		printf("no\n");
	else
		printf("%d\n", max);
}

ZZULIOJ 1057: 素数判定

时间限制: 1 Sec 内存限制: 30 MB

题目描述

输入一个正整数n,判断n是否是素数,若n是素数,输出”Yes”,否则输出”No”。

输入

输入一个正整数n(n<=1000)

输出

如果n是素数输出"Yes",否则输出"No"。输出占一行。
样例输入 Copy
2
样例输出 Copy
Yes

代码

#include<stdio.h>

int main()
{
	int n,i;
	scanf("%d", &n);
	for(i = 2; i <= n / 2; i++)
	{
		if(n % i == 0)
			break;
	}
	if(i <= n / 2 || n == 1) 
		printf("No\n");
	else
		printf("Yes\n");
	return 0;
}

ZZULIOJ 1058: 求解不等式

时间限制: 1 Sec 内存限制: 128 MB

题目描述

已知不等式 1!+2!+3!+…+m!‹n,请编程对用户指定的n值计算并输出满足该不等式的m的整数解。

输入

输入一个整数n,n为int范围内的正整型。

输出

输出m的取值范围,具体格式见输出样例。
样例输入 Copy
2000000000
样例输出 Copy
m<=12
提示
注意计算过程中的类型溢出问题

代码

// 输入的 n 虽然是int范围内的正整型
// 但是设置的两个函数返回值可能会超过int型 
// 例如: 假设 x_int型是小于5的 输入 n = 4
// 则 1! + 2! = 3 < n  需要进行下一个循环
// 而 1! + 2! + 3! = 9 > 5
// 又           3! = 6 > 5  
//	 所以两个函数都设置成long long 
 
#include<stdio.h>

long long Factorial(int n)
{
	long long num = 1;
	while(n)
	{
		num = num * n;
		n--;
	}
	return num;
}

long long Add_factorial(int n)
{
	long long sum = 0;
	for(int i = 1; i <= n; i++)
	{
		sum = sum + Factorial(i);
	}
	return sum;
} 

int main()
{
	int n, i;
	scanf("%d", &n);
	for(i = 1; ; i++)
	{
		if(Add_factorial(i) >= n)
			break;
	}
	printf("m<=%d\n", i - 1);
	return 0;
} 

ZZULIOJ 1059: 最高分

时间限制: 1 Sec 内存限制: 30 MB

题目描述

输入一批学生的成绩(整数),输出最高分。

输入

输入包含多个非负整数和一个负整数。该负数不作为有效成绩,只表示输入结束。

输出

输出一个整数,即最高分。单独占一行。
样例输入 Copy
7 6 5 9 2 -1
样例输出 Copy
9

代码

#include<stdio.h>

int main()
{
	int a[10000], n, max;
	int i = 0;
	while(1)
	{
		scanf("%d", &a[i]);
		if(a[i] < 0)
			break;
		i++;
	}
	n = i;
	max = a[0];
	for(i = 1; i <= n; i++)
	{
		if(max < a[i])
			max = a[i];
	}
	printf("%d\n", max);
	return 0;
}

标签:1050,输出,int,1059,ZZULIOJ,样例,Copy,输入
来源: https://blog.csdn.net/L51213/article/details/113793976