王海岩_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 character    for (int i = 0; i < num; i++) {        char ch[100000];        fgets(ch, sizeof(ch), stdin);        ch[strcspn(ch, "\n")] = 0; // Remove the newline character        if (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 点赞 评论 收藏
分享
任务描述编写一个程序,找出并输出所有三位数的水仙花数。水仙花数是指一个 n 位数(n≥3),它的每个位上的数字的 n 次幂之和等于它本身。输入输出要求输入: 无输入。输出: 输出所有三位数中的水仙花数,每行输出一个。代码实现cpp#include <stdio.h>#include <math.h>int main() {    int i, j, k;    int sum, temp;    for (i = 100; i < 1000; i++) {        temp = i;        sum = 0;        while (temp != 0) {            j = temp % 10;            sum += (int)pow(j, 3);            temp /= 10;        }        if (sum == i) {            printf("%d\n", i);        }    }    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 点赞 评论 收藏
分享
任务描述编写一个程序,求解三元一次方程 2X + 3Y + 5Z = 100 的整数解的组数,其中 X, Y, Z 的取值范围为 [-30, +30]。输入输出要求输入: 无输入。输出: 满足等式 2X + 3Y + 5Z = 100 的整数解的组数。代码实现#include <bits/stdc++.h>using namespace std;int main() {    int a = 0;    for (int i = -30; i <= 31; i++) {         for (int j = -30; j <= 31; j++) {            for (int k = -30; k <= 31; k++) {                 if (2 * i + 3 * j + 5 * k == 100) {                    a++;                 }            }        }    }    cout << a << endl;     return 0;}总结代码通过三层循环遍历所有可能的 X, Y, Z 组合,并计数满足方程的组合数。通过这次练习,我加深了对循环和条件判断的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
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 点赞 评论 收藏
分享
任务描述编写一个程序,计算一次考试中学生的最高分、最低分和平均分。输入输出要求输入: 第一行包含一个整数 n,表示考试人数。接下来 n 行,每行包含一个0到100的整数,表示一个学生的得分。输出: 三行,第一行输出最高分,第二行输出最低分,第三行输出平均分,平均分保留两位小数。代码实现c#include <stdio.h>int main() {    int n;    scanf("%d", &n);    int maxScore = 0;    int minScore = 100;    int totalScore = 0;    for (int i = 0; i < n; i++) {        int score;        scanf("%d", &score);        if (score > maxScore) {            maxScore = score;        }        if (score < minScore) {            minScore = score;        }        totalScore += score;    }    double averageScore = (double)totalScore / n;    printf("%d\n", maxScore);    printf("%d\n", minScore);    printf("%.2f\n", averageScore);    return 0;}总结通过这次练习,我加深了对循环、条件判断和类型转换的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享
任务描述编写一个程序,判断给定重量的西瓜能否被切成两个偶数重量的部分。输入输出要求输入: 一个整数 weight,表示西瓜的重量,范围是 1 到 100。输出: 如果西瓜可以被切成两个偶数重量的部分,输出 "YES, you can divide the watermelon into two even parts.";否则输出 "NO, you can't divide the watermelon into two even parts."代码实现cpp#include <stdio.h>int main() {    int weight;    scanf("%d", &weight);    if (weight > 2 && weight % 2 == 0) {        printf("YES, you can divide the watermelon into two even parts.\n");    } else {        printf("NO, you can't divide the watermelon into two even parts.\n");    }    return 0;}总结通过这次练习,我加深了对条件判断和模运算符的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务