• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++高级语言程序设计实验三-中国矿业大学

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

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

第二题

编写具有如下原型的函数:void find(int i, int n); 实现从 i 开始找起,连续找出 n 个素数并显示在屏幕上。输入两个整数,前一个是查找的起始数字,后一个是指定查找几个素数。

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

int main(){
    int a,b;
    cin>>a>>b;
    find(a, b);
}

第三题

输入正整数start和end,找出从start到end这一区间段内哪一个数n的因子和最大,并将该n及其因子和maxSum作为结果输出。例如,当start=10,end=15时,所求的n应该为12,而maxSum应该为16。设计函数计算n的因子和,其中因子和为包括1但不包括n本身的所有因子之和。

#include<iostream>
using namespace std;
void maxSum(int a, int b){
    int maxindex=a;
    int max=1;
    int p=a;
    while(p<=b){
        int s=0;
        for (int n=1; n<p; n++){
            if (p%n==0){
                s+=n;
            }
        }
        if (s>max){
            maxindex=p;
            max=s;
        }
        p++;
    }
    cout<<maxindex<<" "<<max;
}

int main(){
    int start,end;
    cin>>start>>end;
    maxSum(start, end);
}

第四题

编写具有如下原型的函数symm:bool symm(long n); 用来判断正整数n是否为“回文数”(正读与反读为大小相同的数),若是返回true,否则返false。并编写主函数,通过调用symm,求出n以内所有满足下述特征的m:m和7m以及3mm都是“回文数”,如1,11,88,…(因为m=1,7m=7,3mm=3;m=11,7m=77,3mm=363;m=88,7m=616,3mm=23232;…)

#include<iostream>
using namespace std;
bool symm(long n){
    long beforereverse=n;
    long reverse=0;
    int temp=0;
    while(n){
        temp=n%10;
        reverse=reverse*10+temp;
        n/=10;
    }
    if (reverse==beforereverse){
        return true;
    }
    else {
        return false;
    }
}

int main(){
    long a;
    cin>>a;
    for (int i=1; i<=a; i++){
        if (symm(i)&&symm(7*i)&&symm(3*i*i)){
            cout<<i<<" ";
        }
    }
}

第五题

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

#include<iostream>
using namespace std;
int re(int n){
    int beforereverse=n;
    int reverse=0;
    int temp=0;
    while(n){
        temp=n%10;
        reverse=reverse*10+temp;
        n/=10;
    }
    return reverse;
}

int main(){
    int a;
    cin>>a;
    cout<<a+re(a);
}


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#前台线程与后台线程区别发布时间:2022-07-14
下一篇:
c++文件输入输出流fstream,对输入和输出重载发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap