郑轻oj题解1050-1099

文章描述了一系列编程题目,涉及整数计算(阶乘、平方根、数列和等)、数学逻辑(素数、兔子繁殖问题)、数值操作(最大公约数和最小公倍数)以及字符处理(加密和计数)。
摘要由CSDN通过智能技术生成

1050

题目描述

求1! + 2! + ……n!

输入

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

输出

输出一个整数,即阶乘累加的结果,单独占一行。

样例输入 Copy

4

样例输出 Copy

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

1051

题目描述

数列的定义如下:
数列的第一项为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()
{
	double item;
	int n;
	double sum=0;
	scanf("%lf%d",&item,&n);
	for(int i=1;i<=n;i++){
	
		sum=sum+item;
		item=sqrt(item);
		
	}
	printf("%.2lf",sum);
	return 0;
 } 

1052 

题目描述

输入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>
#include<math.h>
int main()
{
	double item;
	int n;
	double sum=0;
	scanf("%lf%d",&item,&n);
	for(int i=1;i<=n;i++){
	
		sum=sum+item;
		item=sqrt(item);
		
	}
	printf("%.2lf",sum);
	return 0;
 } 

1053

题目描述


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

输入

输入一个实数x。

输出

输出一个实数,即数列的前10项和,结果保留3位小数。

样例输入 Copy

1

样例输出 Copy

0.841
#include<stdio.h>
int main()
{
	int i;
	double x,z,m,sum,f;
	scanf("%lf",&x);
	sum=0,m=1,z=x,f=1;
	for(i=1;i<=10;i++)
	{	
		sum=sum+f*z/m;
		m=m*(2*i)*(2*i+1);
		z=z*x*x ;
		f=-f;
	}
	printf("%.3lf",sum);
	return 0;
}

1054

题目描述

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

输入

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

输出

输出第一天的桃子个数。

样例输入 Copy

3

样例输出 Copy

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

1055

题目描述

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

输入

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

输出

输出第n个月有多少对兔子。

样例输入 Copy

3

样例输出 Copy

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

1056

题目描述

小明对某些数字有偏爱,例如,他喜欢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 i,sum=0,n,m;
	scanf("%d %d",&m,&n);
	for(i=n;i>=m;i--)
	{
	  if(i%7==0&&i%4!=0)
	  {
	  printf("%d",i);
	  sum++;
	  break;
	  }
	 }
	if(sum==0)
	 printf("no"); 
	return 0;
}

1057

题目描述

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

输入

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

输出

如果n是素数输出"Yes",否则输出"No"。输出占一行。 

样例输入 Copy

2

样例输出 Copy

Yes
#include<stdio.h>
int main()
{
	int x;
	int a;
	a=0;
	scanf("%d",&x);
	for(int i=2;i<=x-1;i++){
		if(x%i==0){
			a=1;
			break;
	}	
	}
	if(x==1||a==1){
		printf("No\n");
	}else{
		printf("Yes\n");
	}
	
	
	return 0;
}

1058

题目描述

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

输入

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

输出

输出m的取值范围,具体格式见输出样例。

样例输入 Copy

2000000000

样例输出 Copy

m<=12
#include<stdio.h>
int main()
{
	int n;
	int x=1;
	scanf("%d",&n);
	double sum=0;
	for(int i=1;;i++){
		x=x*i;
		sum=sum+x;
		if(sum>=n){
			printf("m<=%d",i-1);
			break;
		}
	}
	return 0;
 } 

1059

题目描述

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

输入

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

输出

输出一个整数,即最高分。单独占一行。

样例输入 Copy

 7 6 5 9 2 -1

样例输出 Copy

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

1060

题目描述

 输入一个正整数,将其逆序输出,每个数字后有一个空格。 

输入

 输入一个正整数n,你可以假设n在int范围内 

输出

 将n按其逆序输出,每个数字后有一个空格,输出占一行。例如,输入12354,输出4 5 3 2 1 

样例输入 Copy

12354

样例输出 Copy

4 5 3 2 1 
#include<stdio.h>
#include<math.h>
int main()
{
	int x,n,m;
	scanf("%d",&x);
	n=(int)log10(x)+1;
	for(int i=1;i<=n;i++){
		m=x%10;
		printf("%d ",m);
		x=x/10;
	
	}
	return 0;
}

1061

题目描述

 输入一个不大于10的9次方的正整数,从高位开始逐位分割并输出各位数字。 

输入

 输入一个正整数n,n是int型数据 

输出

依次输出各位上的数字,每一个数字后面有一个空格,输出占一行。例如,输入 12345 ,输出 1 2 3 4 5 

样例输入 Copy

12345

样例输出 Copy

1 2 3 4 5
#include<stdio.h>
#include<math.h>
int main()
{
	int n;
	int a,b,len,pen;
	scanf("%d",&n);
	len=(int)log10(n)+1;
	pen=(int)pow(10,len);
	for(int i=1;i<=len;i++){
		pen=pen/10;
		a=n/pen;
		printf("%d ",a);
		n=n%pen;
		
	}
	return 0;
 } 

1062

题目描述

输入两个不大于10的9次方的正整数,输出其最大公约数。

输入

输入两个正整数m和n,数据之间用空格隔开。

输出

输出一个整数,表示m和n的最大公约数。

样例输入 Copy

4 6

样例输出 Copy

2
#include<stdio.h>
int main()
{
	int m,n,t;
	scanf("%d %d",&m,&n);
	while(m*n!=0)
	{
		t=m%n;
		m=n;
		n=t;
	}
	printf("%d",m);
	return 0; 
}

1063

题目描述

输入两个正整数,输出其最大公约数和最小公倍数。

输入

输入两个正整数n和m(n,m<=1000000)。输入保证最终结果在int范围内。

输出

输出两个整数,用空格隔开。表示m和n的最大公约数和最小公倍数。

样例输入 Copy

4 6

样例输出 Copy

2 12
#include<stdio.h>
int main()
{
	long long int m,n;
	long long int t,x;
	scanf("%lld %lld",&m,&n);
	x=m*n;
	while(m*n!=0)
	{
		t=m%n;
		m=n;
		n=t;
	}
	x=x/m;
	printf("%d %d",m,x);
	return 0;
}

1064

题目描述

从键盘输入一批字符,以@结束,按要求加密并输出。

输入

从键盘输入一批字符,占一行,以@结束。

输出

输出占一行
加密规则:
1)所有字母均转换为小写。
2)若是字母'a'到'y',则转化为下一个字母。
3)若是'z',则转化为'a'。
4)其它字符,保持不变。

样例输入 Copy

Kyh520@

样例输出 Copy

lzi520
#include<stdio.h>
int main()
{
	char ch;
	while(scanf("%c",&ch),ch!='@')
	{
		if(ch>='A'&&'Z'>=ch)  ch+=32;
		
		if(ch>='a'&&'y'>=ch)  ch+=1;
		else if(ch=='z')      ch='a';
		printf("%c",ch);	
	}
	return 0;
}

1065

题目描述

输入一行字符,以回车符作为输入结束的标志。统计其中数字字符的个数。

输入

多个字符,以回车符结束,回车符不作为有效字符。

输出

输出一个整数,表示数字字符的个数。

样例输入 Copy

12abrt12@2013

样例输出 Copy

8
#include<stdio.h>
int main()
{
	char ch;
	int sum=0;
	while(scanf("%c",&ch),ch!='\n'){
		if(ch>='0'&&ch<='9'){
			sum++;
		}
	}
	printf("%d",sum);
	return 0;
}

  • 30
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值