2022级Ai智工作室训练赛1测试题

(1)斐波那契数列

描述

输入整数n,输出斐波那契数列的前n项。

输入

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

输出

输出斐波那契数列的前n项。每个数后面都有空格。

示例

‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮

输入
6

输出
1 1 2 3 5 8
#include<stdio.h>
#include<math.h>
int main()
{
    int n,a = 1, b = 1,temp,i;
    scanf("%d",&n);
    if(n>2){
    	printf("1 1 ");
    	for(i=3;i<=n;i++){
    		temp=a+b;
    		a=b;
    		b=temp;
    		printf("%d ",b);
		}printf("\n");
		
	}
	else if(n==1)
	{printf("1 \n");}
	else if (n==2){
		printf("1 1 \n");
	}
	}
    

 (2)计算n!

‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

题目描述

给定整数n,计算n!的值并输出。

输入要求

输入一个正整数n(n≤12)。

输出要求

输出n!的值。

输入样例

5

输出样例

120
# include<stdio.h>
int main()
{
	int n;
	int t;
	int s=1;

	scanf("%d",&n);
	for(t=1;t<=n;t++)//数的相乘,知道被乘数为n截止
	{
		s=s*t;
	}
	printf("%d\n",s);
return 0;
} 

(3)标题:比较字符串

 

描述:输入一行字符(长度小于等于1000),判断其中是否存在相邻两个字符相同的情形,若有,则输出该相同的字符并结束程序(只需输出第一种相等的字符即可)。否则输出NO

 ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬输入输出示例:

 输入输出
示例 1hello annal

 提示:输出的NO是大写。

#include<stdio.h>
#include<string.h>
int main()
{
	int i,a;
	char ch[1000];
	gets(ch);
	a=strlen(ch);
	for(i=0;i<a;i++)
	{
		if(ch[i]==ch[i+1])
		{
			printf("%c\n",ch[i]);break;
		}
	}
	if(i==a)
	{
		printf("NO\n");
	}
}

(4) 鸡兔同笼


描述

一个笼子里关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目。如果无解,则输出NO answer。

输入

输入整数n和m,分别表示鸡兔的总数量及总腿数。

输出

依次输出鸡的数目和兔的数目。如果无解,则输出NO answer。

示例

(点击编辑器左上角{;}按钮编辑代码框)‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入
5 16 

输出
2 3

提示

NO answer的判断条件:如果计算出来鸡的数目小于0,或者兔的数目小于0,或者总的腿数m不是偶数。
#include<stdio.h>
 
int main()
{
    int n,m,x,y;//鸡兔总数量,总腿数量,鸡的数量,兔的数量
 
    scanf("%d%d",&n,&m);
    /** 列方程
     * n=x+y;
     * m=2*x+4*y;
     */
    x=2*n-0.5*m;
    y=0.5*m-n;
    if(x>=0&&y>=0&&n==x+y)
        printf("%d %d\n",x,y);
    else
        printf("NO answer\n");
    return 0;
}

(5)二维数组元素加2操作


描述

从键盘输入数值,构成一个3行4列的二维整型数组,设计函数对每个元素执行加2操作,然后在主函数中输出该数组的内容。

输入

输入3行4列的二维数组。

输出

按行列形式输出操作后的数组,每个数字后面都有空格。

示例

‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入
1 2 3 4
5 6 7 8
9 10 11 12

输出
3 4 5 6 
7 8 9 10 
11 12 13 14 

 

#include <stdio.h>

int main()
{
int str[10][10];
for(int i=0;i<3;i++)
{
 for(int j=0;j<4;j++)
 {
  scanf("%d",&str[i][j]);
 }
}
for(int i=0;i<3;i++)
{
 for(int j=0;j<4;j++)
 {
  printf("%d ",str[i][j]+2);
 }
 printf("\n");
}

   return 0; 
}

(6)蟠桃记


描述

喜欢西游记的同学都知道悟空偷吃蟠桃的故事,你们一定都觉得这猴子太闹腾了,其实你们是有所不知:悟空是在研究一个数学问题!什么问题呢?他研究的问题是蟠桃一共有多少个?不过,到最后,他还是没能解决这个难题,呵呵^-^ ,你能帮他解决这个问题吗?‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

当时的情况是这样的:第一天悟空摘下若干个桃子,当即吃掉一半,还不过瘾,又多吃了一个。第二天又将第一天剩下的桃子吃掉一半,又多吃了一个。以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候,发现只剩下一个桃子了。聪明的你,请帮悟空算一下,他第一天共摘了多少桃子?‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入

输入一个正整数n(1 < n < 30 ),表示只剩下一个桃子的事情是在第n天发生的。

输出

输出悟空第一天共摘了多少桃子。

示例

输入
4

输出
22

 

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

 (7)回文问题‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬


描述

回文是从前向后读和从后向前读都一样的字符串,输入一个字符串,程序判断该字符串是否是回文后输出。例如:字符串LEVEL是回文,而123312就不是回文。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬


输入‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输入一个字符串,以回车结束。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

输出

[输出格式] 如是回文,输出“Yes”;反之,输出“No”。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

示例

输入样例1: level 输出样例1: Yes‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入样例2:12345 输出样例2: No
#include<stdio.h>
#include<string.h>
int main(){
	int sum=0,num,i;
	char ch[10000];
	gets(ch);
	num=strlen(ch);
	for(i=0;i<=num/2;i++)
	{
		if(ch[i]==ch[num-1-i])
		sum++;
	}
	
	if(sum==(num/2)+1)
	printf("Yes\n");
	else printf("No\n");
} 

 (8)标题 变种水仙数

‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

描述:

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。

例如:153=1^3+5^3+3^3。

8208 = 8^4+2^4+0^4+8^4

这道题请写出程序判断输入的数是否为水仙花数。

输入描述:

首先输入正整数 n,表示需要判断的数的个数 (1<=n<=100)
随后每一行输入一个数 Ai,对于每次输入判断 Ai 是否为水仙花数

输出描述:

每次判断 Ai 输出判断结果:
如果是,输出 yes
否则输出 no

输入输出示例

 输入输出
示例 1
3
111
153
222
no
yes
no

 

#include <stdio.h>
#include <math.h>
int main()
{
    int n = 0,b=0,k=0,m=0;
    int a =0;
    scanf("%d",&n);
    for(int i = 0; i != n; ++i)
    {
        a = 0;
        scanf("%d",&a);
       b = a;
       k = 0,m = 0;
        while (b)
        {
            m++;
            b /= 10;
        }
        b = a;
        while(b)
        {
            k += pow(b%10,m);
            b /= 10;
        }
        if(a == k)
            printf("yes\n");
        else  printf("no\n");
    }
    return 0;
}

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值