传智杯备赛代码整理(前4题)

本文整理传智杯备赛前4题的典型算法题型,涵盖单位换算(浮点运算与进制转换)、等差数列求和、众数频次统计、符号转移逻辑、3的倍数累加、小写字母计数、课程容量判断、阶乘计算及数组最大值查找。重点考察基础循环、数组遍历、字符串处理、条件判断与数值转换等编程基本功,全部题目均属经典OJ入门级算法题。

第1套

T1(签到题)单位转换

题目描述:计算机存储单位换算,1GB=1024MB,1MB=1024KB,1KB=1024B。
输入一行字符串,形如 128MB=?GB ,求换算后的数值,保留小数点后6位。
输入样例: 128MB=?GB
输出样例: 0.125000

T2(基础循环)1024橙子

题目描述:小A准备给n个人发橙子,第1个人1个,第2个人2个,第i个人i个。求一共需要多少橙子。
输入:一个整数n
样例输入: 4
样例输出: 10
解释:1+2+3+4=10

T3(数组基础)众数次数

题目描述:给定n个整数,统计出现次数最多的数字一共出现多少次。
输入:第一行n,第二行n个整数
样例输入

plaintext

6
1 2 2 3 3 3

样例输出: 3

第2套

T1(签到)符号转移

题目描述:给定a、b,把b的正负号转移到a上,结果= b>0 ? abs(a):-abs(a)
输入两个整数a,b,b不为0
样例输入: 5 -3
样例输出: -5

T2(循环)求1~n中所有3的倍数之和

输入正整数n,输出1到n之间所有3的倍数累加和
样例输入: 10
样例输出: 18
解释:3+6+9 =18

T3(字符串)统计小写字母数量

输入一行不带空格字符串,写程序统计里面小写英文字母的个数
样例输入: ChuanZhiBei
样例输出: 7

第3套

T1(签到)课程报名

题目描述:课程最多容纳m个人,当前已经有n人报名。如果n<m输出 YES ,还能报名;否则输出 NO 。
输入:一行两个整数 n m
样例输入: 20 30
样例输出: YES

T2(循环)求阶乘

输入数字n,计算n!(n的阶乘,1<=n<=10)
样例输入: 5
样例输出: 120

T3(指针/数组)数组最大值

输入n,再输入n个整数,输出数组里面最大值,推荐用指针遍历
样例输入

plaintext

5
11 45 2 99 37

样例输出: 99

你先写代码,我可以把答案代码单独放另一边(题目答案分离,方便自测)
要不要我顺便给你传智杯的做题小技巧?

另外还有个赛道:AIoT嵌入式系统创新大赛,这个是团队作品赛,不是写代码OJ,如果是这个赛道我就换嵌入式题目。你是报的哪一个?NINGS
//#include<stdio.h>
//int main()
//{
//double x = 0;
//scanf(“128MB=?GB”);
//x = 128.0 / 1024;
//printf(“%.6f”, x);

//return 0;

//} 因为结果是小数,一定是小数除整数

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

/*#include<stdio.h>
int main()
{
int arr[1000] = { 0 };
int n = 0;
int i = 0;
int max = 0;
int j = 0;
int count = 0;
printf(“第一行输入”);
scanf(“%d”, &n);
printf(“\n”);
printf(“第二行请输入”);
for (i = 0; i < n, i++)
{
scanf=(" % d", &arr[i]);
}
max = arr[0];
for (i = 0; i <= n; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
printf(“最大值=%d\n”,max);
for (i = 0; i < n; i++)
{

	for (j = i+1; j < n; j++)
	{
		if (arr[i] == arr[j])
			count++;
	}
}
printf("%d", count);
return 0;

}*/

//注意数组是用下标的,所以关于数组的循环一定要看看会不会出界,一般起始位置从0开始,第二个小于
/#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int x = 0;
scanf(“%d%d”, &a, &b);
x = b > 0 ? abs(a) : -abs(a)
printf(“%d”, x);
return 0;
}
/
//注意:abs用#include<stdio.h>,fabs用#include<math.h>

/*
#include<stdio.h>
int main()
{
int x = 0;
int n = 0;
int sum=0;
scanf(“%” d, &n);
for (x = 1; x <= n; x++)
{
if (x % 3 == 0)
{
sum = sum + x;
}

}
printf("%d",sum);
return 0;

} */
#include<stdio.h>
int main()
{
char arr[1000] = { 0 };
int count = 0;
scanf(“%s”,arr);
for (int i = 0; arr[i] != ‘\0’; i++)
{
if (arr[i] > ‘a’ && arr[i] < ‘z’)
{
count++;
}

}
printf("%d", count);
return 0;

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值