题目一
- 题目描述
幼稚园终于又有新的作业了。 老师安排同学用发给同学的4根木棒拼接成一个三角形。 当然按照正常的逻辑,如果不能拼接成三角形。 必然要折断某个木棍来拼接三角形。 可是懒惰的小艺当然不会费力了! 如果拼接不成三角形小艺就会把它凭借成类似边长 1 1 2的伪三角形。 如果伪三角形都拼接不成那就不交作业!
- 输入描述
输入四根木棍的长度。
- 输出描述
拼接成正常三角形输出”1”,伪三角形输出”0”,否则输出”-1”。
- 实例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int checkTriangle(int a, int b, int c)
{
if (a + b > c && b + c > a && c + a > b)
return 1;
else if (a + b == c || a + c == b || b + c == a)
return 0;
else
return -1;
}
int main()
{
int a, b, c, d;
scanf("%d %d %d %d", &a, &b, &c, &d);
int result = -1;
if (checkTriangle(a, b, c) == 1 || checkTriangle(a, b, d) == 1 || checkTriangle(a, c, d) == 1 || checkTriangle(b, c, d) == 1)
result = 1;
else if (checkTriangle(a, b, c) == 0 || checkTriangle(a, b, d) == 0 || checkTriangle(a, c, d) == 0 || checkTriangle(b, c, d) == 0)
result = 0;
printf("%d\n", result);
return 0;
}
题目二
- 题目描述
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
- 输入描述
输入包括两行数据。第一行包含 10 个 100 到 200 之间(包括 100 和 200 )的整数(以厘米为单位)分别表示 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 到 120 之间(包含 100 和 120 )的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
- 输出描述
输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
- 实例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
int i,j,k[NUM],n=0;
for(i=0;i<=9;i++)
scanf("%d",&k[i]);
scanf("%d",&j);
for(i=0;i<=9;i++)
{
if(k[i]<=j+30)
n++;
}
printf("%d",n);
return 0;
}
题目三
- 题目描述
给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9] 最长区间 2,3,8 长度为 3 (注意:测试用例仅做参考,我们会根据代码质量进行评分)
- 输入描述
第一行输入整数n。(1<=n<=10000)表示数组的大小 第二行给出n个整数a.(-1e9<=a<=1e9)
- 输出描述
Nan
实例代码
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
41
42
43
44
45
46
int solution(int n, int arr[]) {
int result;
int i, j = 1, k[NUM], m = 0;
for (i = 0; i <= n; i++)
{
if (arr[i] < arr[i + 1])
j++;
else
{
k[i] = j;
j = 1;
}
if (k[i] >= m)
m = k[i];
}
result = m;
return result;
}
int main() {
int n;
scanf("%d", &n);
int* arr;
arr = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int result = solution(n, arr);
printf("%d", result);
return 0;
}题目四
题目描述
已知n个整数。 每3个数算一个周期。 不足一个周期补0. 在周期的第一个位置的数的权值和等于a1+a[1+3]+… … 求三个数的最大权值。 如果最大权值为第一个数,输出’J’; 最大权值为第二个数,输出’H’; 最大权值为第三个数,输出’B’。
- 输入描述
第一行输入一个整数n。(1<=n<=100) 第二行输入n个整数。
- 输出描述
输出答案。
- 实例代码
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
void solution(int n, int arr[]) {
int i = 0, k = n, q = 0, j[3] = { 0 };
if (k % 3 != 0)
{
do
{
j[0] += arr[q];
i++;
q += 3;
} while (i < k / 3 + 1);
}
else
{
do
{
j[0] += arr[q];
i++;
q += 3;
} while (i < k / 3);
}
i=0,q = 0;
if (k >= 2)
{
do
{
j[1] += arr[q + 1];
i++;
q += 3;
} while ((i + 1) < k / 3 + 1);
}
i=0,q = 0;
if (k >= 3)
{
do
{
j[2] += arr[q + 2];
i++;
q += 3;
}while ((i + 2) < k / 3 + 2);
}
if (j[0] > j[1] && j[0] > j[2])
printf("J");
else if (j[1] > j[2] && j[1] > j[0])
printf("H");
else if (j[2] > j[0] && j[2] > j[1])
printf("B");
}
int main() {
int n;
scanf("%d", &n);
int* arr;
arr = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
solution(n, arr);
return 0;
}
题目五
- 题目描述
书是人类进步的阶梯。 小艺每周因为工作的原因会选择性的每天多读几页或者少读几页。 小艺想知道一本n页的书她会在周几读完。
- 输入描述
第一行输入n(1<=n<=1000); 第二行输入7个整数,分别表示周一~周日的读书页数p(0<=p<=1000)。(不考虑7个整数都为0的情况)
- 输出描述
输出答案。(1-7)
- 实例代码
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
void solution(int n, int pages[7])
{
int i,a,c=0,sum=0,x=0;
for(i=0;i<7;i++)
{
x+=pages[i];
}
a=n%x;
if(a==0)
{
for(i=0;i<7;i++)
{
if(pages[i])
{
x-=pages[i];
}
else
{
continue;
}
if(x<=0)
{
c=i+1;
}
}
}
else
{
for(i=0;i<7;i++)
{
if(a>0)
{
a-=pages[i];
}
else
{
c=i;
break;
}
}
}
printf("%d",c);
}
int main() {
int n;
scanf("%d", &n);
int pages[7];
int i;
for (i = 0; i < 7; i++)
{
scanf("%d", &pages[i]);
}
solution(n, pages);
return 0;
}