王海岩_2404020224_网络24_2 level
获赞
0
粉丝
3
关注
3
看过 TA
11
哈尔滨理工大学
2028
算法工程师
IP属地:黑龙江
暂未填写个人简介
私信
关注
任务描述 编写一个程序,判断给定的素数是否是回文数。回文数是指从前往后读和从后往前读是一样的数字。输入输出要求输入: 一个整数 n,保证 n 为素数。输出: 如果 n 的回文数也是素数,则输出 "prime",否则输出 "noprime"。代码实现cpp#include <iostream>#include <bits/stdc++.h>using namespace std;bool isPrime(long long n) {if (n == 1) return false;for (long long i = 2; i * i <= n; i++) {if (n % i == 0) return false;}return true;}long long flag(long long n) {string a = to_string(n);string b = a.substr(0, a.size() - 1);string c = a.substr(a.size() - 1, 1);reverse(b.begin(), b.end());string e = b + c + b;return stoll(e);}int main() {long long n;cin >> n;long long m = flag(n);if (isPrime(m)) {cout << "prime" << endl;} else {cout << "noprime" << endl;}return 0;}总结代码实现了对素数的回文数的判断。通过这次练习,我加深了对素数判断和字符串操作的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享
任务描述 编写一个程序,统计一篇文章中英文大写字母、小写字母、数字、空格以及其他字符的数量。输入输出要求输入: 三行字符串 a, b, c,每行长度不超过80个字符。输出: 五个整数,分别代表英文大写字母、小写字母、数字、空格以及其他字符的个数。代码实现cpp#include <stdio.h>#include <string.h>int main() {char ch[3][81];int i, j, sum = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0;for (i = 0; i < 3; i++) {for (j = 0; j < 81; j++) {scanf("%c", &ch[i][j]);if (ch[i][j] == '\n') {break;}}ch[i][j] = '\0';}for (i = 0; i < 3; i++) {sum = sum + strlen(ch[i]);for (j = 0; ch[i][j] != '\0'; j++) {if (ch[i][j] >= 'A' && ch[i][j] <= 'Z') {sum1 = sum1 + 1;} else if (ch[i][j] >= 'a' && ch[i][j] <= 'z') {sum2 = sum2 + 1;} else if (ch[i][j] >= '0' && ch[i][j] <= '9') {sum3 = sum3 + 1;} else if (ch[i][j] == ' ') {sum4 = sum4 + 1;}}}sum5 = sum - (sum1 + sum2 + sum3 + sum4);printf("%d %d %d %d %d\n", sum1, sum2, sum3, sum4, sum5);return 0;}总结代码实现了对文章中各类字符的统计。通过这次练习,我加深了对字符操作和循环控制的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享
任务描述 编写一个程序,判断给定的字符串是否由两个长度至少为2的回文串前后拼接而成。输入输出要求输入: 第一行包含一个正整数 n,代表字符串数量。之后 n 行每行一个仅包含小写字母的字符串。输出: 对于每个字符串输出一行,如果该字符串由两个长度至少为2的回文串前后拼接而成则输出 "Yes",否则输出 "No"。代码实现cpp#include <stdio.h>#include <string.h>#include <stdbool.h>bool isPalindrome(char ch[]) {int len = strlen(ch);for (int i = 0; i < len / 2; ++i) {if (ch[i] != ch[len - 1 - i]) {return false;}}return true;}bool canBePalindromeConcatenated(char ch[]) {int len = strlen(ch);for (int i = 1; i < len - 1; ++i) {if (isPalindrome(&ch[0]) && isPalindrome(&ch[i])) {return true;}}return false;}int main() {int num;scanf("%d", &num);getchar(); // Consume the newline characterfor (int i = 0; i < num; i++) {char ch[100000];fgets(ch, sizeof(ch), stdin);ch[strcspn(ch, "\n")] = 0; // Remove the newline characterif (canBePalindromeConcatenated(ch)) {printf("Yes\n");} else {printf("No\n");}}return 0;}总结代码实现了对字符串的回文判断和拼接判断。通过这次练习,我加深了对字符串操作和循环控制的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享
任务描述 编写一个程序,对给定长度为 n 的只有小写字母的字符串 s 进行 m 次操作。每次操作将字符串中所有 c1 字符改成 c2 字符,输出操作完的字符串。输入输出要求输入: 第一行包含两个整数 n 和 m,第二行包含一个字符串 s,之后 m 行,每行两个字符 c1 和 c2。输出: 输出一行一个字符串,即操作完成后的字符串。代码实现cpp#include <stdio.h>#include <string.h>int main() {int n, m;scanf("%d %d", &n, &m);char s[n + 1];scanf("%s", s);for (int i = 0; i < m; i++) {int l, r;char c1, c2;scanf("%d %d %c %c", &l, &r, &c1, &c2);for (int j = l - 1; j < r; j++) {if (s[j] == c1) {s[j] = c2;}}}printf("%s\n", s);return 0;}总结本次编程任务顺利完成,代码实现了对字符串的多次字符替换操作。通过这次练习,我加深了对字符串操作和循环控制的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享
任务描述 编写一个程序,实现两个矩阵的乘法。矩阵A的规模为 n x m,矩阵B的规模为 m x p,输出矩阵A与矩阵B相乘所得的矩阵C。输入输出要求输入: 首先输入两个整数 n 和 m,然后输入矩阵A的元素,接着输入整数 p,最后输入矩阵B的元素。输出: 输出矩阵A与矩阵B相乘所得的矩阵C。代码实现cpp#include <stdio.h>#define MAXN 100int A[MAXN][MAXN], B[MAXN][MAXN], C[MAXN][MAXN];int main() {int n, m, p;scanf("%d %d", &n, &m);for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {scanf("%d", &A[i][j]);}}scanf("%d", &p);for (int i = 0; i < m; i++) {for (int j = 0; j < p; j++) {scanf("%d", &B[i][j]);}}for (int i = 0; i < n; i++) {for (int j = 0; j < p; j++) {C[i][j] = 0;for (int k = 0; k < m; k++) {C[i][j] += A[i][k] * B[k][j];}}}for (int i = 0; i < n; i++) {for (int j = 0; j < p; j++) {printf("%d ", C[i][j]);}printf("\n");}return 0;}总结本次编程任务顺利完成,代码实现了矩阵乘法的计算。通过这次练习,我加深了对矩阵运算和多维数组操作的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享
任务描述 编写一个程序,模拟 n 位小朋友玩老鹰抓小鸡的游戏。狐狸老师作为“母鸡”,排在队伍的第一个,其他 n-1 个小朋友作为“小鸡”。程序需要模拟 k 次位置变化的过程,每次“母鸡”需要排到队伍最后成为“小鸡”,让第二位小朋友成为新的“母鸡”。输入输出要求输入: 两个整数 n 和 k,表示小朋友的数量和位置变化的次数。输出: 每行输出每一次的位置变化后的队伍排列。代码实现cpp#include <stdio.h>int main() {int n, k;scanf("%d %d", &n, &k);int children[n];for (int i = 0; i < n; i++) {children[i] = i + 1;}for (int step = 1; step <= k; step++) {printf("%d: ", step);for (int i = 0; i < n; i++) {if (i > 0) {printf(" ");}printf("%d", children[i]);}printf("\n");int first = children[0];for (int i = 0; i < n - 1; i++) {children[i] = children[i + 1];}children[n - 1] = first;}return 0;}总结代码通过循环模拟了队伍位置的变化,并输出了每次变化后的队伍排列。通过这次练习,我加深了对数组操作和循环控制的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享
任务描述 编写一个程序,将两个已排序的序列合并为一个有序序列并输出。输入输出要求输入: 三行,第一行包含两个整数 m 和 n,分别表示两个序列的长度。第二行和第三行分别包含 m 和 n 个整数,表示两个序列的元素。输出: 一行,输出合并后的有序序列代码实现cpp#include <stdio.h>int main() {int n, m;scanf("%d %d", &n, &m);int s1[n], s2[m];for (int i = 0; i < n; i++) {scanf("%d", &s1[i]);}for (int i = 0; i < m; i++) {scanf("%d", &s2[i]);}int d[n + m];int i = 0, j = 0, k = 0;while (i < n && j < m) {if (s1[i] < s2[j]) {d[k++] = s1[i++];} else {d[k++] = s2[j++];}}while (i < n) {d[k++] = s1[i++];}while (j < m) {d[k++] = s2[j++];}for (int i = 0; i < n + m; i++) {printf("%d ", d[i]);}return 0;}总结代码实现了两个有序序列的合并。通过这次练习,我加深了对数组操作和双指针技巧的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享
任务描述 编写一个程序,解决百元买百笔问题。给定一个整数 n,表示总金额,需要找出所有可能的购买组合,使得购买的钢笔、圆珠笔和铅笔的总价等于 n 元,且购买的笔总数也为 n 支。输入输出要求输入: 一个整数 n(1 ≤ n ≤ 1000)。输出: 所有可能的购买组合,每组包含钢笔、圆珠笔和铅笔的数量,如果无解,输出 "Not found!"。代码实现cpp#include <stdio.h>int main() {int n;scanf("%d", &n);int found = 0;//a为钢笔//b为圆珠笔//c为铅笔for (int a = 1; a <= (n - 3) / 3; a++) {for (int b = 1; b<= (n - a * 3 - 2) / 2; b++) {int c = n - a - b;if (3 * a + 2 * b + 0.5 * c == n) {printf("%d %d %d\n",a, b, c);found = 1;}}}if (!found) {printf("Not found!\n");}return 0;}总结本次编程任务顺利完成,代码通过双重循环遍历所有可能的购买组合,并检查总价是否等于给定的金额。通过这次练习,我加深了对循环和条件判断的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享
任务描述 编写一个程序,将给定整数的各个位上数字反转,得到一个新的整数。新数应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。输入输出要求输入: 一个整数 N。输出: 一个整数,表示反转后的新数。代码实现cpp#include <stdio.h>#include <limits.h>int reverseInteger(int x) {int reversed = 0;int isNegative = x < 0;unsigned int ux = isNegative ? -x : x;while (ux != 0) {int pop = ux % 10;ux /= 10;if (reversed > INT_MAX / 10 || (reversed == INT_MAX / 10 && pop > INT_MAX % 10)) {return 0;}reversed = reversed * 10 + pop;}return isNegative ? -reversed : reversed;}int main() {int n;scanf("%d", &n);int reversed = reverseInteger(n);if (reversed == 0) {printf("-");} else {printf("%d\n", reversed);}return 0;}总结本次编程任务顺利完成,代码实现了数字反转的功能,并考虑了整数溢出的问题。通过这次练习,我加深了对整数操作和边界条件处理的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务