7个题
- 求三个数中的最大值
- 闰年判断
- 简单数数小木块
- 统计偶数个数
- 回文数判断
- 找数
- 斐波那契数列
1.求三个数中的最大值
*试题描述*
由键盘上输入三个整数,请输出其中的最大值。
*输入*
输入三个整数,邻近两数之间用一个空格隔开。且保证整数属于int范围。
*输出*
输出三个整数中最大的一个。
*输入示例*
1 35 -47
*输出示例*
35
*数据范围*
输入和输出均为int范围的整数
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("%d\n", a>b ? (a>c?a:c) : (b>c?b:c));
return 0;
}
2.闰年判断
*试题描述*
通常说:“四年一闰,百年不闰,四百年再闰”。请你判断一个年份是否为闰年?
*输入*
输入一个正整数n,且0 < n <= 30000。
*输出*
如果为闰年则输出“TRUE”,否则输出“FALSE”(不输出引号)。
*输入示例*
2000
*输出示例*
TRUE
*数据范围*
对于100%的数据,0 < n <= 30000
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
puts(n % 4 == 0 && n % 100 != 0 || n % 400 == 0 ? "TRUE" : "FALSE");
return 0;
}
3.简单数数小木块
*试题描述*
在墙角堆放着一堆完全相同的正方体小木块,如下图所示:

因为木块堆得实在是太有规律了,你只要知道某一层的层号(从上向下编号,层号从1开始),就可以计算该层木块的数量了。由键盘输入正整数n表示层号,请你计算该层木块的数量。
*输入*
输入一个正整数n,表示这堆小木块中某一层的层号,已知1 <= n <= 100。
*输出*
输出一个整数,表示这层小木块的数量,值在int范围内。
*输入示例*
5
*输出示例*
15
*数据范围*
对于100%的数据,1 <= n <= 100
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int sum = 0;
for(int i = 1; i <= n; i++)
sum += i;
printf("%d\n", sum);
return 0;
}
4.统计偶数个数
*试题描述*
请统计输入的n个整数中,偶数的个数!
*输入*
输入包含两行:
第一行为一个正整数n(0 < n < 10000)。
第二行为n个整数,邻近两数之间用一个空格隔开。
*输出*
输出一个整数,代表偶数的个数。
*输入示例*
3
3 1 2
*输出示例*
1
*数据范围*
对于100%的数据,0 < n < 10000,所有整数均在int范围
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int a, count = 0;
for(int i = 0; i < n; i++)
{
scanf("%d", &a);
if((a % 2) == 0)
count++;
}
printf("%d\n", count);
return 0;
}
5.回文数判断
*试题描述*
“回文数”是一种数字。如:98789,这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。
由键盘输入正整数n,请你判断该数是否为回文数,是输出“TRUE”,否则输出“FALSE”。
*输入*
输入一个正整数n,且10 <= n <= 2000000。
*输出*
根据题意输出“TRUE”或“FALSE”(不输出引号)。
*输入示例1*
11
*输出示例1*
TRUE
*输入示例2*
1234321
*输出示例2*
TRUE
*输入示例3*
173
*输出示例3*
FALSE
*数据范围*
对于100%的数据,10 <= n <= 2000000
#include <stdio.h>
int main()
{
char str[200];
gets(str);
int len = 0;
while(str[len] != 0)
len++;
for(int i = 0; i < len / 2; i++)
{
if(str[i] != str[len-i-1])
{
puts("FALSE");
return 0;
}
}
puts("TRUE");
return 0;
}
6.找数
*试题描述*
数512具有这样的性质,它各位数字之和的三次方正好是原数512,即512 =(5 + 1 + 2)3。
由键盘输入两个正整数m和n,请你输出m和n之间所有符合条件的数。其中m和n是两位至四位的自然数(10 <= m <= n <= 9999)。
*输入*
输入两个正整数m和n,用一个空格隔开(10 <= m <= n <= 9999)。
*输出*
输出若干行,每个符合条件的数占一行。请按照从小到大的顺序输出。
*输入示例*
500 520
*输出示例*
512
*数据范围*
对于100%的数据,10 <= m <= n <= 9999
#include <stdio.h>
int main()
{
int m, n;
scanf("%d%d", &m, &n);
for(int i = m; i <= n; i++)
{
int j = i, sum = 0;
for(; j > 0;)
{
sum += j % 10;
j /= 10;
}
if(sum * sum * sum == i)
printf("%d\n", i);
}
return 0;
}
7.斐波那契数列
*试题描述*
斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34……
这个数列从第三项开始,每一项都等于前两项之和。请你输出斐波那契数列的前N项(0 < N < 30)。
*输入*
输入一个整数N。
*输出*
输出斐波那契数列的前N项,相邻两项用一个空格隔开。
*输入示例*
8
*输出示例*
1 1 2 3 5 8 13 21
*数据范围*
对于100%的数据,0 < N < 30
#include <stdio.h>
int main()
{
int N;
scanf("%d", &N);
if(N <= 1)
puts("1");
else if(N == 2)
puts("1 1");
else
{
printf("1 1 ");
int a = 1, b = 1;
for(int i = 2; i < N; i++)
{
int c = a + b;
printf("%d ", c);
a = b;
b = c;
}
}
return 0;
}
本文来自博客园,作者:早晨9点,转载请注明原文链接:https://www.cnblogs.com/onesun/p/15822777.html

浙公网安备 33010602011771号