首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
打开考生文件夹下的解决方案文件proj3,其中声明了MagicNumber类,该类是一个用于表示连续正整数序列的类。MagicNumber的成员函数Intimacy的功能是查找该序列中的亲密数对。亲密数对的定义是:如果整数a的所有正因子(包括1,但不包括a
打开考生文件夹下的解决方案文件proj3,其中声明了MagicNumber类,该类是一个用于表示连续正整数序列的类。MagicNumber的成员函数Intimacy的功能是查找该序列中的亲密数对。亲密数对的定义是:如果整数a的所有正因子(包括1,但不包括a
admin
2020-04-10
40
问题
打开考生文件夹下的解决方案文件proj3,其中声明了MagicNumber类,该类是一个用于表示连续正整数序列的类。MagicNumber的成员函数Intimacy的功能是查找该序列中的亲密数对。亲密数对的定义是:如果整数a的所有正因子(包括1,但不包括a自身)之和等于b,并且整数b的所有正因子(包括l,但不包括b自身)之和等于a,则称整数a和b为亲密数对。
请根据亲密数的定义编写成员函数Intimacy。在main函数中给出了一组测试数据,此时程序的输出应该是:
1和1000之间的亲密数对为:
220和284
注意:只需在函数Filter的//*******333*******和//*******666*******之间填入若干语句,不要改动程序中的其他内容。
//MagicNumber.h
#include<iostream>
#include<string>
#include<cmath>
#pragma warning(disable:4996)
using namespace std;
class MagicNumber
{
public:
MagicNumber(int x1,int x2): min(x1),max(x2),count(C){}
void ResetCount(){count=0;}
int GetCount()const{return count;}
int GetSet(int index){return set[index];}
void Intimacy();//寻找亲密数对
void Print()
{
cout<<min<<"和"<<max<<"之间的亲密数为:"<<endl;
for(int i=0;i<count;i+=2)
cout<<set
<<"和"<<set[i+1]<<endl;
}
private:
int digits;//Magic数的位数
int min,max;//待计算的数值范围
int count;//Magic数的数量
int set[40];//Magic数集合
};
void writeToFile(const char*);
//main.cpp
#include"MagicNumber.h"
void MagicNumber::Intimacy()
{
int number;
for(number=min;number<max;number++)
{
//******333******
//******666******
}
}
int main()
{
MagicNumber obj(1,i000);
obj.Intimacy();
obj.Print();
writeToFile("");
return 0;
}
选项
答案
void MagicNumber::Intimacy() { int number; for(number=min; number<max;number++) { int i; //过滤已经处理过的亲密数对 bool exist=false; for(i=0;i<count; i++) { if(number==set[i]){ exist=true; } } if(exist){ continue; } int numberA=number; int numberB=0; int sumA=0,sumB=0; //求numberA的所有正因子之和surnA for(i=1; i<=numberA/2;i++) { if(numberA%i==0){ sumA+=i; } } //判断sumA的合法性 if(sumA<min || sumA>max || sumA==numberA){ continue; } //让numberB等于sumA求numberB的所有正因子之和sumB numberB=sumA; for(i=1;i<=numberB/2;i++){ if(numberB%i==0){ sumB+=i; } } //判断numberA和mumberB是否属于亲密数对若是存入set;数组更新count if(sumB==numberA){ set[count;++]=nuraberA; set[count++]:numberB; } } }
解析
根据题意,Intimacy是求rain和max之间的亲密数对,程序首先遍历rain和max之间的所有整数,在遍历的过程中,判断当前的numberA是否处理过,如果处理过继续判断下一个数;然后求numberA的正因子之和sumA,如果sumA不在min和max之间,或sumA等于numberA,说明当前sumA不合法,继续处理下一个数;否则sumA赋给numberB,求numberB的正因子之和sumB,最后判断sumB是否与numberA相等,如果相等,说明numberA和numberB属于亲密数对,存入set数组并更新count。
转载请注明原文地址:https://kaotiyun.com/show/Hu8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#includeusingnamespacestd;classB{public:virtualvoidf(){cout
有如下程序:#includeusingnamespacestd;classA{public:A(){cout
下列有一维数组a的定义中,语法正确的是
下列关于派生类的叙述中,错误的是
下列关于函数重载的叙述中,错误的是
将函数模板中的参数实例化后,函数模板变为【】。
线性表的顺序存储结构和线性表的链式存储结构分别是()。
软件生命周期包括8个阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。
下列定义中p指向的地址可更改,但*p不能够更改的是
执行下列语句,变量sum的值是______。intsum=0;for(inti=1;i<=3;i++)for(intj=1;j<=i;j++)sum++;
随机试题
在某些情况下,服务器在建立SSL连接时,要证实用户身份,将使用()
患儿,2个月,来院体检。护士指导家长每天定时播放音乐,近距离和孩子说话,在房间内张贴鲜艳图片。拿颜色鲜明能发声的玩具引逗孩子,其目的是促进该婴儿
对机电产品国际招标评标结果的公示期为()日。
下列各项中,企业可以采用的发出存货成本计价方法有()。
某市2010年全年实现农业增加值124.3亿元,比上年下降1.6%。粮食播种面积22.3万公顷,比上年减少0.3万公顷;粮食产量115.7万吨,比上年下降7.3%。全市农业观光园1303个,比上年增加9个;观光园总收人17.8亿元,比上年增长16.7%。
在超市购物后,小李把七件商品放在超市的传送带上,苹果后面紧跟着面包,牛奶后面接着放的是羊肉,碳酸汽水紧跟在酸梅汁后面,豆腐后面紧跟着牛奶,苹果和羊肉之间有两件商品,豆腐和酸梅汁之间有两件商品,最后放上去的是一个面包。如果上述陈述为真,那么以下哪项也为真?(
Strategyandcultureareamongtheprimaryleversattopleaders’disposalintheirnever-endingquesttomaintainorganizationa
阅读下列说明,回答问题。【说明】某政府部门进行电子政务工程建设,与监理单位签订了监理合同。项目拟通过公开招标方式选择承建单位,在项目招标及合同签订过程中发生了如下事件。【事件1】招标准备过程中,建设单位提出,项目所需购买的数据采集设备国产产品价格较
WhatdidKlara’sfriendsuggestincludinginformationon?
Alanguageisasignalingsystemwhichoperateswithsymbolicvocalsounds,andwhichisusedbyagroupofpeopleforthepurpo
最新回复
(
0
)