C++程序设计实验一 2017/11/20

博客围绕C++编程展开,包含多个题目。有求正整数与其反序数之和的题目,需编写函数实现反序转换;还有找出区间内因子和最大的数、判断回文数、判断整数是否仅由偶数字组成等题目,并给出了各题的源代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1.1题目描述

键盘输入正整数 n,求出n与其反序数x之和并输出。例如,输入2038n+x = 2038 +8302 =10340,输出应为10340。要求:编写函数实现数据转换成反序数值。

1.2源代码

#include<iostream>
using namespace std;
int main()
{
    int n, x, sum, m;
    x = 0;
    cin >> n;
    m = n;
    while (m != 0)
    {
        x = x * 10 + m % 10;
        m = m / 10;
    }
    sum = x + n;
    cout << sum;
    return 0;
}

1.3运行截图

 

2.1题目描述

键盘输入正整数 n,求出n与其反序数x之和并输出。例如,输入2038n+x = 2038 +8302 =10340,输出应为10340。要求:编写函数实现数据转换成反序数值

2.2源代码:

#include<iostream>
using namespace std;
void find(int i,int n);
int main()
{
    int i,n;
    cin>>i>>n;
    find(i,n);
    return 0;
}
void find(int i,int n)
{
    int x,y,a=0;
    for(x=i;a<n;x++)
    {
        for(y=2;y<=x;y++)
            if(x%y==0)
                break;
            if(y>=x)
            {
                cout<<x<<" ";
                a++;
            }
    }
}

2.3运行截图:

3.1题目描述

输入正整数startend,找出从startend这一区间段内哪一个数n的因子和最大,并将该n及其因子和maxSum作为结果输出。例如,当start=10end=15时,所求的n应该为12,而maxSum应该为16

3.2源代码

#include<iostream>
using namespace std;
int main()
{
    int start, end, maxsum;
    maxsum = 0;
    cin >> start >> end;
    int i, j, a, b;
    for (i = start; i < end; i++)
    {
        a = 0;
        for (j = 2; j < i; j++)
        {
            if (i%j == 0)
                a = a + j;
        }
        if (a > maxsum)
        {
            maxsum = a + 1;
            b = i;
        }
    }
    cout << b << " " << maxsum;
    return 0;
}

 

3.3运行截图

4.1题目描述

编写具有如下原型的函数symmbool symm(long n); 用来判断正整数n是否为回文数(正读与反读为大小相同的数),若是返回true,否则返false。并编写主函数,通过调用symm,求出n以内所有满足下述特征的mm7*m以及3*m*m都是回文数,如11188(因为m=17*m=73*m*m=3m=117*m=773*m*m=363m=887*m=6163*m*m=23232

4.2源代码

#include<iostream>
using namespace std;
bool symm (long n);
int main ()
{
    int m,n;
    cin>>n;
    for (m=1;m<n;m++)
    {
        if (symm(m)&&symm(m*7)&&symm(m*m*3))
        {
            cout<<m<<" ";
        }
    }
    return 0;
}
bool symm (long n)
{
    int a,b,c;
    a=n;
    b=0;
    while (a!=0)
    {
        c=a%10;
        b=b*10+c;
        a=a/10;
    }
    if (b==n)
       return true;
    else 
       return false;
}

4.3运行结果

 

5.1题目描述

编写具有如下原型的函数:bool f(long x);其功能为:若整数 x 仅由偶数字(02468)组成时(如 x=26480),函数返回 true,否则返回 false(如当 x=22034 时)。并编制主函数对它进行调用。

5.2源代码

#include<iostream>
using namespace std;
int main()
{
    bool f(long x);
    long x;
    cin>>x;
    f(x);
    return 0;
}
bool f(long x)
{
    int m,n;
    m=x;
    do
    {
        n=m%2;
        if(n==1)
            break;
        else
            m=m/10;
    }while(m>0);
    if(m>0)
        cout<<"false";
    else
        cout<<"true";
        return 0;
}

 

5.3运行截图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值