C++小菜鸡求帮助,可有偿

img

img

img

img

编程课有点摆了,现在急需完成,求帮助一下下,可以有偿,谢谢啦~
一共4道题呀

又是一次n道题,怎么个有偿法
第一个:

#include <stdio.h>
int rev(int n)
{
    int m=0;
    while(n>0)
    {
        m = m*10 + n%10;
        n/=10;
    }
    return m;
}

int main()
{
    int n,m,i;
    scanf("%d",&n);
    for(i=0;i<7;i++)
    {
        m=rev(n);
        printf("%d+%d=%d\n",n,m,n+m);
        if(rev(m+n)==m+n)
            break;
        n = m+n;
    }
    if(i==7)
        printf("N");
    else
        printf("Y");
    return 0;
}

第二个:

#include <stdio.h>
int main()
{
    char s[256] = {0};
    int n;
    scanf("%d",&n);
    getchar();
    for(int k=0;k<n;k++)
    {
        int a[26] = {0};
        scanf("%[^\n]", s);
        getchar();
        int i=0,max= 0;
        while(s[i] != '\0')
        {
            if(s[i] >='a' && s[i]<='z')
                a[s[i]-'a']++;
            else if(s[i] >='A' && s[i] <='Z')
                a[s[i]-'A']++;
            i++;
        }
        for(i=0;i<26;i++)
            if(a[i] > max)
                max = a[i];
        for(i=0;i<26;i++)
            if(a[i] == max)
                printf("%c",i+'a');
        printf("\n");
    }
    return 0;
}

第四个:

#include <stdio.h>
int isprime(int n)
{
    for(int i=2;i*i<=n;i++)
        if(n%i==0)
            return 0;
    return 1;
}
 
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=3;i<=n/2;i+=2)
    {
        if(isprime(i) && isprime(n-i))
            printf("%d %d\n",i,n-i);
    }
    return 0;
}

统计一句话出现最多的英文字母
参考链接

C++实现统计某个字符在字符串出现的次数,忽略大小写_alxe_made的博客-CSDN博客 1. 题目描述写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。输入描述:第一行输入一个有字母和数字以及空格组成的字符串,第二行输入一个字符。输出描述:输出输入字符串中含有该字符的个数。输入:ABCDEFA输出12. 思路这道题直观的思路是可以利用STL的count函数,但是忽略大小写直接套用就... https://blog.csdn.net/alxe_made/article/details/99674058?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166795550316782412514201%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166795550316782412514201&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-3-99674058-null-null.nonecase&utm_term=c%2B%2B%E7%BB%9F%E8%AE%A1%E4%B8%80%E5%8F%A5%E8%AF%9D%E9%87%8C%E5%87%BA%E7%8E%B0%E6%AC%A1%E6%95%B0%E6%9C%80%E5%A4%9A%E7%9A%84%E8%8B%B1%E6%96%87%E5%AD%97%E6%AF%8D%2C%E5%AD%97%E6%AF%8D%E5%A4%A7%E5%B0%8F%E5%86%99%E6%97%A0%E5%85%B3&spm=1018.2226.3001.4450

4题写完了,看一下

实在感谢两位大佬,考虑到只能采纳一个人,要不你们都发个付款吗吧

emmm现在都解决了吗

第1题:

#include <iostream>

int method1(int num)
{
    int reversion = 0;
    while (num)
    {
        reversion = reversion * 10 + num % 10;
        num /= 10;
    }
    return reversion;
}

/** 判断回数 */
bool method2(int num)
{
    return num == method1(num);
}

int main(void)
{
    int num, i = 0, reversion, result;
    std::cin >> num;

    // 最多循环7次
    while (i++ < 7)
    {
        reversion = method1(num);    
        result = num + reversion;    // 结果和
        std::cout << num << " + " << reversion << " = " << result << std::endl;
        if (method2(result))
            break;
        num = result;
    }
    std::cout << (i < 7 ? 'Y' : 'N') << std::endl;

    return 0;
}

img

img

第2题:

#include <iostream>
#include <cctype>

int main(void)
{
    int n, max = 0, index, j;
    int letters[26] = { 0 };    // 表示26个字母的整型数组
    char buff[255] = {'\0'};    // 接收每行输入的字符串

    std::cin >> n;
    getchar();    // 吸收换行符
    for (int i = 0; i < n; i++)
    {
        j = 0;
        while ((buff[j++] = getchar()) != '\n');    // 获取字符串

        j = 0;    // 重置 j
        while (buff[j] != '\n')    // 遍历字符串
        {
            // 如果字符j是字母
            if (isalpha(buff[j]))
            {
                // 如果是大写字母,转换为小写
                if (isupper(buff[j]))
                    buff[j] = tolower(buff[j]);

                // 获取下标
                index = (int)(buff[j] - 'a');
                letters[index]++;    // 下标对应的数组位加1

                // 如果数组位大于max, max 等于数组位
                if (letters[index] > max) max = letters[index];
            }
            j++;
        }
    }

    // 遍历数组
    for (int i = 0; i < 26; i++)
    {
        // 如果 letters[i] 的大小等于 max,输出对应的字符
        if (letters[i] == max)
            std::cout << (char)(i + 'a');
    }
    std::cout << std::endl;

    return 0;
}

// Institue of Network Computing and Information System

img

第3题:

#include <iostream>
#include <vector>
using namespace std;

/** 返回fn(n)的值 */
unsigned long long fn(int n)
{
    unsigned long long f1 = 7, f2 = 11, result = 0;

    if (n == 0) return f1;
    if (n == 1) return f2;
    for (int i = 2; i <= n; i++)
    {
        result = f1 + f2;
        f1 = f2;
        f2 = result;
    }
    return result;
}

int main(void)
{
    vector<int> vec;    // 创建数组列表(动态长度)
    int n;

    do {
        cin >> n;
        if (n == 1000001) break;
        vec.push_back(n);    // 数组添加元素
    } while (true);

    // 遍历数组
    for (int i = 0; i < vec.size(); i++)
    {
        cout << (vec[i] != 0 && fn(vec[i]) % 3ULL == 0 ? "yes" : "no") << endl;
    }
    return 0;
}

img

img

第4题:

#include <iostream>

/** 如果是素数,返回 true */
bool isPrime(int n)
{
    int squareRoot = 0;
    while (squareRoot * squareRoot < n) squareRoot++;    // 获取小于 n 的平方根
    for (int i = 2; i <= squareRoot; i++)
    {
        // 如果 i 不等于 2 且能整除 n,n 是素数
        if (i != 2 && n % i == 0)
            return false;
    }
    return true;
}

/** 返回素数数组 */
int **getArray(int m, int *j)
{
    int **array;
    array = new int*[100];
    for (int i = 0; i < 100; i++)    // 数组动态分配空间
        array[i] = new int[2];

    // 两个素数小于m
    for (int i = 1; i < m / 2; i++)
    {
        // 如果 i 和 m - i 均为素数
        if (isPrime(i) && isPrime(m - i) && (i + (m - i) == m))
        {
            // 且均为奇数
            if (i % 2 != 0 && (m - i) % 2 != 0)
            {
                // 赋值
                array[*j][0] = i;
                array[*j][1] = m - i;
                (*j)++;
            }
        }
    }
    return array;
}

int main(void)
{
    int m, j = 0;
    std::cin >> m;

    // 如果范围越界,中断程序
    if (m < 6 || m > 10000) {
        fprintf_s(stderr, "Error m: %d\n", m);
        exit(EXIT_FAILURE);
    }

    int** array = getArray(m, &j);
    for (int i = 0; i < j; i++)    // 输入素数数组
    {
        std::cout << array[i][0] << " " << array[i][1] << std::endl;
    }

    return 0;
}

img

img