有些小难度
1
2
3
4
5
6
7
8
9
敲错键盘
Tex括号
周期串
小学生算术
精确的计算阶乘
6174问题
*字母重排
*Cantor的数表
*因子和阶乘敲错键盘
Tex括号
周期串
小学生算术
精确的计算阶乘
6174问题
*字母重排
*Cantor的数表
*因子和阶乘
【敲错键盘】
打字员把手放在键盘时,不小心就会往右错一位。这样的话,Q就会变成W, 会变成K, 当然空格是不会有错的啦。
输入一个错位后敲出的字符串,输出打字员本来想打出来的...
阅读全文
不断更新中
【1 回文串】
假设现在有个字符串 ABCDCBA,其长度为7。
这个字符串是回文串吗?
a[0] == a[6];
a[1] == a[5];
a[2] == a[4];
a[3] == a[3];
所以是回文串。
在比较过程中,一旦发现有不相等的情况出现,就设置标志 x=0,然后跳出循环。
【2 进制转换】
运用了迭代的技巧。
10010转换成十进制的过程是这样的:
n = 0;
n = n*2 + 1 = 1;
n = n*2 + 0 = 2;
n = n*2 + 0 = 4;
n = n*2 + 1 = 9;
n = n*2 + 0 = 18;
字...
阅读全文
本套模拟题主要模拟命题形式与考核范围。真实竞赛题的数量、难度可能与此套模拟题有差异。
本试卷包含两种题型:“代码填空”与“程序设计”。
填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不多于一条语句(即不能出现分号)。
编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。选手的...
阅读全文
重点掌握文件操作和调试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
int main()
{
int x, min, max, count, sum;
scanf("%d", &x);
sum = min = max = x;
count = 1;
while(scanf("%d", &x)!=EOF) {
sum += x;
count++;
if(x < min) min...
阅读全文
自己动手多实验,对学好C语言帮助很大。
1.3 顺序结构程序设计 【三位数反转】【交换变量】
1.4 分支结构程序设计 【鸡兔同笼】【三整数排序】
1.5.2 scanf输入格式实验 动手实践
1.5.3 printf语句输出实验 动手实践1.3 顺序结构程序设计 【三位数反转】【交换变量】
1.4 分支结构程序设计 【鸡兔同笼】【三整数排序】
1.5.2 scanf输入格式实验 动手实践
1.5.3 printf语句输出实验 动手实践
【三位数反转】
1
2
3
4...
阅读全文
配合《算法竞赛入门经典》第3章
第33页,问题:逆序输出
读入一些整数,逆序输出到一行中。已知整数的个数不超过100个。
难点:读入多少数? 怎么样保存到数组中去?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
#define MAXN 100 + 10
int a[MAXN];
int main()
{
int i, x, n = 0;
while(scanf("%d", &x) == 1)
a[n++] = x;
f...
阅读全文
配合《算法竞赛入门经典》第10章
最大公约数和最小公倍数
两个数的最大公约数通常写成gcd(a, b),最小公倍数写成 lcm(a, b)。
最大公约数*最小公倍数 = 两数的乘积 gcd(a,b) * lcm(a,b) = a*b
求两个数的最大公约数最有名的方法就是辗转相除法, 又名欧几里德算法(Euclidean algorithm)。它是已知最古老的算法, 其可追溯至3000年前。
计算a = 1071和b = 462的最大公约数的过程如下:从1071中不断减去462直到小于462(可以减2...
阅读全文
经典的题目
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#define MAXN 30
int product(int a[], int start, int end)
{
int i, p = 1;
for (i=start; i<=end; i++)
p = p * a[i];
return p;
}
int main(int argc, char *argv[])
{
int n, i, j, t;
int a ...
阅读全文
题目并不难
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
int is_cube(int n)
{
int i;
if (n<=0) return 0;
for (i=0; i<=1000000; i++)
if (i*i*i == n)
return i;
return 0;
}
int main(int argc, char *argv[])
{
int i;
int a, b, ...
阅读全文
这道题不怎么难,但要考虑周全
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#define SIZE 100
int abs(int n)
{
return (n>=0) ? n : -n;
}
int main(int argc, char *argv[])
{
int n;
int a[SIZE+1];
int i;
char sign;
sca...
阅读全文