2019哈理工新生赛题解

2024-04-08 18:48
文章标签 2019 题解 新生 理工

本文主要是介绍2019哈理工新生赛题解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

解题后记
1.题是好题,虽然简单,都是学习C语言程序设计必学的内容。
2.通用化编程往往没有得到重视,尤其是初学的时候。
3.结构化程序设计非常重要,需要从开始就把握。
4.代码不仅要简洁,而且要极其简洁。
5.逻辑结构清晰也非常重要,需要时时注意。

A题:
接:https://ac.nowcoder.com/acm/contest/1877/A
来源:牛客网

小乐乐学编程
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld题目描述
小乐乐的编程老师BoBo,经常告诉小乐乐“学习编程最好的办法就是上机实践,因为你要对计算机下指令,想让计算机帮你干活,就得多和计算机‘交流’,实践才能出真知。”
输入描述:

输出描述:
Practice makes perfect!

AC的C语言程序如下:

#include <stdio.h>int main(void)
{printf("Practice makes perfect!\n");return 0;
}

B题:
链接:https://ac.nowcoder.com/acm/contest/1877/B
来源:牛客网

小乐乐算平均分
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐输入三科成绩,请编程帮他输出三科成绩总分及平均分。
输入描述:
一行,3科成绩(浮点数),成绩之间用一个空格隔开。
输出描述:
一行,总分和平均分(小数点后保留两位),用一个空格隔开。
示例1
输入
79.5 80.0 98.0
输出
257.50 85.83

AC的C语言程序如下:

#include <stdio.h>int main(void)
{double a, b, c, sum;scanf("%lf%lf%lf", &a, &b, &c);sum = a + b + c;printf("%.2f %.2f\n", sum, sum / 3.0);return 0;
}

C题:
链接:https://ac.nowcoder.com/acm/contest/1877/C
来源:牛客网

小乐乐找最大数
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐获得4个最大数,请帮他编程找到最大的数。
输入描述:
一行,4个整数,用空格分开。
输出描述:
一行,一个整数,为输入的4个整数中最大的整数。
示例1
输入
5 8 2 5
输出
8

解题后记:条件运算符使得程序变得简洁,if语句是浮云。

AC的C语言程序如下:

#include <stdio.h>#define N 4int main(void)
{int a, maxa, i;scanf("%d", &a);maxa = a;for(i = 2; i <= N; i++) {scanf("%d", &a);maxa = a > maxa ? a : maxa;}printf("%d\n", maxa);return 0;
}

AC的C语言程序如下:

#include <stdio.h>
#include <limits.h>#define N 4int main(void)
{int a, maxa, i;maxa = INT_MIN;for(i = 1; i <= N; i++) {scanf("%d", &a);maxa = a > maxa ? a : maxa;}printf("%d\n", maxa);return 0;
}

D题:
链接:https://ac.nowcoder.com/acm/contest/1877/D
来源:牛客网

小乐乐是否被叫家长
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐的班级进行了一次期中考试,考试一共有3门科目:数学,语文,英语,小乐乐的班主任决定给没有通过考核的同学家长开一次家长会,考核的标准是三科平均分不低于60分,所以现在想请你帮忙算一算小乐乐会不会被叫家长。
输入描述:
一行,输入三个整数(表示小乐乐的数学、语文、英语的成绩),用空格分隔。
输出描述:
一行,如果小乐乐会被请家长则输出“YES”,否则输出“NO”。
示例1
输入
80 60 50
输出
NO
示例2
输入
70 55 40
输出
YES

解题后记:能用整数计算就不用浮点数计算。

AC的C语言程序如下:

#include <stdio.h>#define N 3
#define PASS 60 * Nint main(void)
{int a, sum, i;sum = 0;for(i = 1; i <= N; i++) {scanf("%d", &a);sum += a;}printf(sum < PASS ? "YES\n" : "NO\n");return 0;
}

AC的C语言程序如下:

#include <stdio.h>#define N 3
#define PASS 60int main(void)
{int a, sum, i;sum = 0;for(i = 1; i <= N; i++) {scanf("%d", &a);sum += a;}printf(sum / N < PASS ? "YES\n" : "NO\n");return 0;
}

E题:
链接:https://ac.nowcoder.com/acm/contest/1877/E
来源:牛客网

小乐乐转换成绩
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐输入百分制成绩,他想将成绩转换成等级制。转换规则为:90-100为’A’,80-89为’B’,70-79为’C’,60-69为’D’,59以下为’E’。如果输入的成绩不在0-100之间,输出’F’。
输入描述:
一行,一个整数表示的成绩。
输出描述:
一行,转换后的等级。
示例1
输入
78
输出
C

解题后记:查表法是伟大的,其他都是浮云!
参考链接:HDU2004 成绩转换【入门】

AC的C语言程序如下:

#include <stdio.h>int main(void)
{int score;char convert[] = "EEEEEEDCBAA";scanf("%d", &score);if(0 <= score && score <= 100)printf("%c\n", convert[score/10]);elseprintf("F\n");return 0;
}

F题:
链接:https://ac.nowcoder.com/acm/contest/1877/F
来源:牛客网

小乐乐算多少人被请家长
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐的班主任想统计一下班级里一共有多少人需要被请家长,三个成绩(语文,数学,外语)平均分低于60的将被请家长,小乐乐想编程帮助班主任算一下有多少同学被叫家长。

输入描述:
共n+1行
第一行,输入一个数n,代表小乐乐的班级中有n个同学。
在接下来的n行中每行输入三个整数代表班级中一个同学的三科成绩(语文,数学,外语),用空格分隔。
输出描述:
一行,一个整数,代表班级中需要被请家长的人数。
示例1
输入
3
80 100 90
40 70 65
20 84 93
输出
1

AC的C语言程序如下:

#include <stdio.h>#define N 3
#define PASS 60 * Nint main(void)
{int n, a, sum, cnt = 0, i;scanf("%d", &n);while(n--) {sum = 0;for(i = 1; i <= N; i++) {scanf("%d", &a);sum += a;}if(sum < PASS) cnt++;}printf("%d\n", cnt);return 0;
}

G题:
链接:https://ac.nowcoder.com/acm/contest/1877/G
来源:牛客网

小乐乐算最高分
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐的老师BoBo想知道班级中谁的程序设计基础成绩最高,请编程帮他实现。
输入描述:
共n+1行
第一行输入一个数n,代表小乐乐的班级中n个同学。
第二行输入n个数,用空格相隔,代表班级中每个人的数学成绩。
输出描述:
一个整数,代表班级中最高的数学成绩。
示例1
输入
3
99 89 39
输出
99

AC的C语言程序如下:

#include <stdio.h>int main(void)
{int n, a, maxa, i;maxa = 0;scanf("%d", &n);for(i = 1; i <= n; i++) {scanf("%d", &a);maxa = a > maxa ? a : maxa;}printf("%d\n", maxa);return 0;
}

H题:
链接:https://ac.nowcoder.com/acm/contest/1877/H
来源:牛客网

小乐乐计算求和
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐想计算一下1!+2!+3!+…+n!。
输入描述:
一行,一个整数n。
输出描述:
一行,一个整数,表示1!+2!+3!+…+n!的结果。
示例1
输入
3
输出
9
备注:
结果范围在int类型范围之内

解题后记
1.有备无患,还是用long long类型。
2.迭代是最为常用的计算过程。
3.乘积变量的初值,通常设置为1 。

AC的C语言程序如下:

#include <stdio.h>int main(void)
{long long sum = 0, ai = 1;int n, i;scanf("%d", &n);for(i = 1; i <= n; i++) {ai *= i;sum += ai;}printf("%lld\n", sum);return 0;
}

AC的C语言程序如下:

#include <stdio.h>long long fact(int n)
{long long ret = 1;int i;for(i = 1; i <= n; i++)ret *= i;return ret;
}int main(void)
{long long sum = 0;int n, i;scanf("%d", &n);for(i = 1; i <= n; i++)sum += fact(i);printf("%lld\n", sum);return 0;
}

I题:
链接:https://ac.nowcoder.com/acm/contest/1877/I
来源:牛客网

小乐乐计算函数
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐学会了自定义函数,BoBo老师给他出了个问题,根据以下公式计算m的值。
在这里插入图片描述
其中 max3函数为计算三个数的最大值,如: max3(1, 2, 3) 返回结果为3。
输入描述:
一行,输入三个整数,用空格隔开,分别表示a, b, c。
输出描述:
一行,一个浮点数,小数点保留2位,为计算后m的值。
示例1
输入
1 2 3
输出
0.30

解题后记:写一个算得快的程序,比起用函数,用带参数的宏定义才是王道!

AC的C语言程序如下:

#include <stdio.h>#define MAX3(x, y, z) (((x) > (y)) ? (((x) > (z)) ? (x) : (z)) : (((y) > (z))? (y) : (z)))int main(void)
{int a, b, c;scanf("%d%d%d", &a, &b, &c);printf("%.2f\n", (double) MAX3(a + b, b, c) / (MAX3(a, b + c, c) + MAX3(a, b, b + c)));return 0;
}

AC的C语言程序如下:

#include <stdio.h>#define MAX(x, y) ((x) > (y) ? (x) : (y))
#define MAX3(x, y, z) MAX(MAX(x, y), z)int main(void)
{int a, b, c;scanf("%d%d%d", &a, &b, &c);printf("%.2f\n", (double) MAX3(a + b, b, c) / (MAX3(a, b + c, c) + MAX3(a, b, b + c)));return 0;
}

AC的C语言程序如下:

#include <stdio.h>int max3(int x, int y, int z)
{if (x > y) {if (x > z) return x;else return z;} else {if( y > z) return y;else return z;}
}int main(void)
{int a, b, c;scanf("%d%d%d", &a, &b, &c);printf("%.2f\n", (double) max3(a + b, b, c) / (max3(a, b + c, c) + max3(a, b, b + c)));return 0;
}

J题
链接:https://ac.nowcoder.com/acm/contest/1877/J
来源:牛客网

小乐乐查找数字
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
给定n个整数和一个整数x,小乐乐想从n个整数中判断x出现几次,请编程帮他实现。
输入描述:
共3行
第一行,一个整数,表示n(1 <= n <= 100)。
第二行,共输入n个整数,两个整数之间用空格分隔。
第三行,输入一个整数,表示要查找的整数x。
输出描述:
一行,表示整数x出现的次数。
示例1
输入
5
1 1 2 1 3
1
输出
3

解题后记:求和或统计的变量,初值通常设置为0 。

AC的C语言程序如下:

#include <stdio.h>#define N 100
int a[N];int main(void)
{int n, x, i;scanf("%d", &n);for(i = 0; i < n; i++)scanf("%d", &a[i]);scanf("%d", &x);int cnt = 0;for(i = 0; i < n; i++)if(a[i] == x) cnt++;printf("%d\n", cnt);return 0;
}

K题:
链接:https://ac.nowcoder.com/acm/contest/1877/K
来源:牛客网

小乐乐与进制转换
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。

输入描述:
输入一个正整数n (1 ≤ n ≤ 109)

输出描述:
输出一行,为正整数n表示为六进制的结果
示例1
输入
6
输出
10
示例2
输入
120
输出
320

解题后记:进制转换问题,计算时通常取出各位数字放在字符数组中,然后再逆序一下。这里给出另外一种解法,数值比较小时尚可计算。

AC的C语言程序如下:

#include <stdio.h>#define BASE 6int main(void)
{int n;long long w = 1, ans = 0;scanf("%d", &n);while(n) {ans += n % BASE * w;w *= 10;n /= BASE;}printf("%lld\n", ans);return 0;
}

L题:
链接:https://ac.nowcoder.com/acm/contest/1877/L
来源:牛客网

小乐乐求和
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐最近接触了求和符号Σ,他想计算在这里插入图片描述的结果。但是小乐乐很笨,请你帮助他解答。

输入描述:

输入一个正整数n (1 ≤ n ≤ 109)

输出描述:

输出一个值,为求和结果。

示例1
输入
1

输出
1

示例2
输入
10

输出
55

AC的C语言程序如下:

#include <stdio.h>int main(void)
{int n;scanf("%d", &n);printf("%lld\n", (long long) n * (n +1) / 2);return 0;
}

AC的C语言程序如下:

#include <stdio.h>int main(void)
{int n, i;long long sum;scanf("%d", &n);for(i = 1, sum = 0; i <= n; i++)sum += i;printf("%lld\n", sum);return 0;
}

M题:
链接:https://ac.nowcoder.com/acm/contest/1877/M
来源:牛客网

小乐乐定闹钟
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐比较懒惰,他现在想睡觉,然后再去学习。他知道现在的时刻,以及自己要睡的时长,想设定一个闹钟叫他起床学习,但是他太笨了,不知道应该把闹钟设定在哪个时刻,请你帮助他。(只考虑时和分,不考虑日期)
输入描述:
输入现在的时刻以及要睡的时长k(单位:minute),中间用空格分开。
输入格式:hour:minute k(如hour或minute的值为1,输入为1,而不是01)
(0 ≤ hour ≤ 23,0 ≤ minute ≤ 59,1 ≤ k ≤ 109)
输出描述:
对于每组输入,输出闹钟应该设定的时刻,输出格式为标准时刻表示法(即时和分都是由两位表示,位数不够用前导0补齐)。

示例1
输入
0:0 100

输出
01:40

示例2
输入
1:0 200

输出
04:20

AC的C语言程序如下:

#include <stdio.h>int main(void)
{int h, m, k;scanf("%d:%d%d", &h, &m, &k);h += (m + k) / 60;h %= 24;m = (m + k) % 60;printf("%02d:%02d\n", h, m);return 0;
}

N题:
链接:https://ac.nowcoder.com/acm/contest/1877/N
来源:牛客网

小乐乐排电梯
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐学校教学楼的电梯前排了很多人,他的前面有n个人在等电梯。电梯每次可以乘坐12人,每次上下需要的时间为4分钟(上需要2分钟,下需要2分钟)。请帮助小乐乐计算还需要多少分钟才能乘电梯到达楼上。(假设最初电梯在1层)
输入描述:
输入包含一个整数n (0 ≤ n ≤ 109)

输出描述:
输出一个整数,即小乐乐到达楼上需要的时间。

示例1
输入
1

输出
2

示例2
输入
12

输出
6

AC的C语言程序如下:

#include <stdio.h>int main(void)
{int n, ans, t1, t2;scanf("%d", &n);t1 = (n + 1) / 12;t2 = (n + 1) % 12;if(t1 == 0) ans = 2;else if(t2 == 0) ans = (t1 - 1) * 4 + 2;else ans = t1 * 4 + 2;printf("%d\n", ans);return 0;
}

O题:
链接:https://ac.nowcoder.com/acm/contest/1877/O
来源:牛客网

小乐乐与欧几里得
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数,但是他竟然不会求两个正整数的最大公约数与最小公倍数之和,请你帮助他解决这个问题。
输入描述:
每组输入包含两个正整数n和m。(1 ≤ n ≤ 109,1 ≤ m ≤ 109)
输出描述:
对于每组输入,输出一个正整数,为n和m的最大公约数与最小公倍数之和。
示例1
输入
10 20
输出
30
示例2
输入
15 20
输出
65

解题后记:
1.类型还是使用无符号长长整形比较保险。
2.直接套用模板函数比较简单。

AC的C语言程序如下:

#include <stdio.h>typedef unsigned long long ULL;ULL gcd(ULL m, ULL n)
{return n ? gcd(n, m % n) : m;
}ULL lcm(ULL m, ULL n)
{return m / gcd(m, n) * n ;
}int main(void)
{int n, m;scanf("%d%d", &n, &m);printf("%lld\n", gcd(n, m) + lcm(n, m));return 0;
}

AC的C++语言程序如下:

#include <bits/stdc++.h>using namespace std;typedef unsigned long long ULL;ULL lcm(ULL m, ULL n)
{return m / __gcd(m, n) * n ;
}int main(void)
{int n, m;scanf("%d%d", &n, &m);printf("%llu\n", __gcd(n, m) + lcm(n, m));return 0;
}

P题:
链接:https://ac.nowcoder.com/acm/contest/1877/P
来源:牛客网

小乐乐改数字
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。
输入描述:
输入包含一个整数n (0 ≤ n ≤ 109)
输出描述:
输出一个整数,即小乐乐修改后得到的数字。
示例1
输入
222222
输出
0
示例2
输入
123
输出
101

AC的C语言程序如下:

#include <stdio.h>#define BASE 10int main(void)
{int n, w = 1, ans = 0;scanf("%d", &n);while(n) {if( n % BASE % 2 == 1)ans += w;w *= BASE;n /= BASE;}printf("%d\n", ans);return 0;
}

Q题:
链接:https://ac.nowcoder.com/acm/contest/1877/Q
来源:牛客网

小乐乐走台阶
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?
输入描述:
输入包含一个整数n (1 ≤ n ≤ 30)
输出描述:
输出一个整数,即小乐乐可以走的方法数。
示例1
输入
2
输出
2
示例2
输入
10
输出
89

AC的C语言程序如下:

#include <stdio.h>long long fib(int n)
{if(n == 1) return 1;else if(n == 2) return 2;else return fib(n - 2) + fib(n - 1);
}int main(void)
{int n;scanf("%d", &n);printf("%lld\n", fib(n));return 0;
}

R题:
链接:https://ac.nowcoder.com/acm/contest/1877/R
来源:牛客网

小乐乐与序列
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。
输入描述:
第一行包含一个正整数n,表示老师给出的序列有n个数。接下来有n行,每行一个正整数k,为序列中每一个元素的值。(1 ≤ n ≤ 105,1 ≤ k ≤ n)
输出描述:
输出一行,为去重排序后的序列,每个数后面有一个空格。
示例1
输入
4
2
2
1
1
输出
1 2
示例2
输入
5
5
4
3
2
1
输出
1 2 3 4 5

AC的C语言程序如下:

#include <stdio.h>
#include <string.h>#define N 100000
int cnt[N + 1];int main(void)
{int n, a, i;scanf("%d", &n);memset(cnt, 0, sizeof(cnt));for(i = 1; i <= n; i++) {scanf("%d", &a);cnt[a]++;}for(i = 1; i <= n; i++)if(cnt[i]) printf("%d ", i);printf("\n");return 0;
}

S题:
链接:https://ac.nowcoder.com/acm/contest/1877/S
来源:牛客网

小乐乐与字符串
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
在庆祝祖国母亲70华诞之际,老师给小乐乐出了一个问题。大家都知道China的英文缩写是CHN,那么给你一个字符串s,你需要做的是统计s中子串“CHN”的个数。
子串的定义:存在任意下标a < b < c,那么“s[a]s[b]s[c]”就构成s的一个子串。如“ABC”的子串有“A”、“B”、“C”、“AB”、“AC”、“BC”、“ABC”。
输入描述:
输入只包含大写字母的字符串s。(1 ≤ length ≤ 8000)
输出描述:
输出一个整数,为字符串s中字串“CHN”的数量。
示例1
输入
CCHNCHN
输出
7
示例2
输入
CCHNCHNCHNCHN
输出
30

AC的C语言程序如下:

#include <stdio.h>
#include <string.h>#define N 8000
char s[N + 1];int main(void)
{long long ccnt, hcnt, ncnt;int i;scanf("%s", s);ccnt = hcnt = ncnt = 0;for(i = 0; s[i]; i++)if(s[i] == 'C') ccnt++;else if(s[i] == 'H') hcnt += ccnt;else if(s[i] == 'N') ncnt += hcnt;printf("%lld\n", ncnt);return 0;
}

TLE的C语言程序如下:

#include <stdio.h>
#include <string.h>#define N 8000
char s[N + 1];int main(void)
{int cnt, len, i, j, k;scanf("%s", s);cnt = 0;len = strlen(s);for(i = 0; i < len - 2; i++)if(s[i] == 'C')for(int j = i + 1; j < len - 1; j++)if(s[j] == 'H')for(k = j + 1; k < len; k++)if(s[k] == 'N') cnt++;printf("%d\n", cnt);return 0;
}

T题:
链接:https://ac.nowcoder.com/acm/contest/1877/T
来源:牛客网

小乐乐与二段数
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
小乐乐从老师口中听到了二段数这个名词,想更深入的了解二段数。
二段数是这样的正整数:恰好包含两种不同的十进制数字s和t,s不是0,并且s的所有出现均排列在所有的t的前面。例如,44444411是二段数(s是4,t是1),41、10000000和5555556也是。但4444114和44444都不是二段数。
这时老师问小乐乐:给你一个任意的正整数n,你能求出比n大并且是n的倍数的最小二段数吗?请你帮助小乐乐解答这个问题。
输入描述:
多组输入,每组输入包含一个正整数n (1 ≤ n ≤ 99999)

题目保证测试数据总数不超过500组,当输入n=0时程序结束。
输出描述:
对于每组测试用例,输出正整数n,后面紧跟“: ”,输出答案并换行,即比n大且是n的倍数的最小二段数。
示例1
输入
1
2019
0
输出
1: 10
2019: 9999999993

AC的C语言程序如下:

TLE的C语言程序如下:

#include <stdio.h>#define BASE 10int judge(long long n)
{int cnt = 1, d, r;d = n % BASE;n /= BASE;while(n) {r = n % BASE;if(r != d) {if(++cnt > 2) break;d = r;}n /= BASE;}return cnt == 2;
}int main(void)
{long long n, ans, k;while(~scanf("%lld", &n) && n) {k = 2;for(;;) {ans = n * k++;if(judge(ans)) break;}printf("%lld: %lld\n", n, ans);}return 0;
}

链接:小乐乐与二段数(2019哈理工新生赛第20题)

这篇关于2019哈理工新生赛题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/886266

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

C - Word Ladder题解

C - Word Ladder 题解 解题思路: 先输入两个字符串S 和t 然后在S和T中寻找有多少个字符不同的个数(也就是需要变换多少次) 开始替换时: tips: 字符串下标以0开始 我们定义两个变量a和b,用于记录当前遍历到的字符 首先是判断:如果这时a已经==b了,那么就跳过,不用管; 如果a大于b的话:那么我们就让s中的第i项替换成b,接着就直接输出S就行了。 这样

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

LeetCode 第414场周赛个人题解

目录 Q1. 将日期转换为二进制表示 原题链接 思路分析 AC代码 Q2. 范围内整数的最大得分 原题链接 思路分析 AC代码 Q3. 到达数组末尾的最大得分 原题链接 思路分析 AC代码 Q4. 吃掉所有兵需要的最多移动次数 原题链接 思路分析 AC代码 Q1. 将日期转换为二进制表示 原题链接 Q1. 将日期转换为二进制表示 思路分析

牛客小白月赛100部分题解

比赛地址:牛客小白月赛100_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A.ACM中的A题 #include<bits/stdc++.h>using namespace std;#define ll long long#define ull = unsigned long longvoid solve() {ll a,b,c;cin>>a>>b>

[SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程

题目来源 NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。https://www.nssctf.cn/problem   [SWPUCTF 2021 新生赛]gift_F12 这个题目简单打开后是一个网页  我们一般按F12或者是右键查看源代码。接着我们点击ctrl+f后快速查找,根据题目给的格式我们搜索c

P2858 [USACO06FEB] Treats for the Cows G/S 题解

P2858 题意 给一个数组。每天把最左或者最右的东西卖掉,第 i i i个东西,第 d a y day day天卖出的价格是 a [ i ] ∗ d a y a[i]*day a[i]∗day。 记忆化搜索 void dfs(int l,int r,int day,ll sum){if(v[l][r]>=sum)return;v[l][r]=sum;if(l>r)//这就是dp答案{

【C++题解】1272. 郭远摘苹果

欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》 问题:1272. 郭远摘苹果 类型:二维数组 题目描述: 郭远有一天走到了一片苹果林,里面每颗树上都结有不同数目的苹果,郭远身上只能拿同一棵树上的苹果,他每到一棵果树前都会把自己身上的苹果扔掉并摘下他所在树上的苹果并带走(假设郭远会走过每一棵苹果树),问在郭远摘苹果的整个过程中,他身上携带的最多苹果数与最小苹果数的差是多少?