首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MagicNumber:类,该类是一个用于表示连续正整数序列的类。MagicNumber的成员函数Nar-cissistic的功能是查找该序列中的水仙花数水仙花数是指一个n
请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MagicNumber:类,该类是一个用于表示连续正整数序列的类。MagicNumber的成员函数Nar-cissistic的功能是查找该序列中的水仙花数水仙花数是指一个n
admin
2016-06-12
28
问题
请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MagicNumber:类,该类是一个用于表示连续正整数序列的类。MagicNumber的成员函数Nar-cissistic的功能是查找该序列中的水仙花数水仙花数是指一个n位数(11>=3),其每个位上的数字的n次方之和等于该数本身,例如153就是一个3位的水仙花数(153=1*1*1+5*5*5+3*3*3)).请编写成员函数Narcissistic。在main函数中给出了一组测试数据,若输入3,此时程序的输出应该是:3位的水仙花数共4个:
153
370
371
407
注意:只需在//**********333**********和//**********666**********之间填入所编写的若干语句,不要改动程序中的其他内容。
#include”MagicNumber.h”
void MagicNumber::Narcissistic()
{
int i,number,sum,figures[30];
for(number=min;number
{
int X=number;i=0;
while(X!=0){figures
=x%
i0,i++;x/=i0;}
//**********333**********
//**********666**********
}
}
int main()
{
int d;
cout<<”请输入位数:
cin>>d;
MagicNumber obj(d);
obj.Narcissistic();
obj.Print(string(”水仙花数”)>;
writeToFile(”C:\\test\\.-);
return 0;
}
//proj3\MagicNumber.h
#include
#include
#include
using namespace std;
clas s MagicNumber
{
public:
MagicNumber(int d):digits(d),
min(pow(i0,digits一1)),max(pow(i0,
digits)一.1),count(0){)
MagicNumber(int xl,int x2):min
(x1),max(x2){}
void ResetCount(){count=0 ;}
int GetCount()const{return
count;)
int GetSet(int index){return
set[index];}
void Narcissistic(); //查找水仙花数
void Print(string&str)
{
cout<
for(int i=0;i
cout<
<
}
private:
int digits;//Magic数的位数
int min,max; //待计算的数值范围
int count; //Magic数的数量
int set[20];//Magic数集合
};
void writeToFile(const char*);
选项
答案
sum=0; for(i=i一1;i>=0;i一一) { sum+=pow(figures[i],digits); } if(sum==number) { set[count++]=number; }
解析
主要考查类构造函数的使用,初始化列表。获取整数各个位上的数值。
【解题思路】
MagicNumber类中的成员变量digits代表连续数列的位数,构造函数首先使用参数来初始化digits,然后根据digits初始化min和max,其中min代表digits位数的最小值,max代表digits位数的最大值,count用来统计min—max范围内的水仙花数的个数,set数组用来存储min~max范围内的水仙花数。程序首先在main函数根据用户输入的数字d来构造一个MagicNumber对象,构造函数完成digits、min、max的初始化,然后调用MagicNumber对象的成员函数Narcissistic()来统计所有digits位数的水仙花数信息。for循环通过遍历min~max范围内的所有数,在遍历过程中,while循环将当前遍历到的数x的各个数位上的数字统计到figures数组的前digits个元素中,接下来需要做的事情就是判断x是否是水仙花数,即将figures数组的前digits个元素分别求digits次方(位数次方)再相加,累加的和存储到sum中,最后判断sum是否与当前数x(number)相等,若相等,则x属于水仙花数,这时需要把x存储到下标为count的set数组中,同时count变量自增1(水仙花数个数加1),否则的话继续下一次for循环,直到当前数x达到最大值max为止。统计完水仙花数后,再调用对象的Print函数,输入水仙花数信息。
转载请注明原文地址:https://jikaoti.com/ti/DpE0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
派生类的成员一般分为两部分,一部分是【】,另一部分是自己定义的新成员。
在软件生产过程中,需求信息的给出是
对于下面的程序,说法正确的是 #include<iostream.h> voidmain() {intx=3,y=4,z=2; if(X=y+z)cout<<"x=y+Z"; elsecout<<"x!=y+Z";}
已知各变量的定义如下 inti=8,k,a,b; unsignedlongw=5; doublex=1.42,y=5.2; 则以下符合C++语言语法的表达式是
关于友元的概念错误的是
数据管理技术的发展是与计算机技术及其应用的发展联系在一起的,经历了由低级到高级的发展过程。分布式数据库、面向对象数据库等新型数据库是属于()。
设有以下定义和程序:#include<iostream.h>classA1{public:voidshowl(){cout<<"classA1"<<end1;
若变量已正确定义并赋值,以下符合C++语言语法的表达式是
若有以下程序:#include<iostream>usingnamespacestd;classBase{intx;protected:inty;public:
随机试题
缓冲区可分为单缓冲区、双缓冲区、多缓冲区和________。
易黄汤中的组分是
患儿,男性,4个月,因腹泻伴呕吐3天,尿少1天入院。患儿平时发育正常,人工喂养,3天来每日大便15~20次,每次量较多,呈蛋花汤样,呕吐4~5次/天,为胃内容物。查体:体温37℃,脉搏140次/min,呼吸30次/min,血压60/40mmHg。精神萎靡,
依据《中华人民共和国环境影响评价法》,()是建设项目环境影响报告书中的法定内容。
根据合同法律制度的规定,下列要约中,不得撤销的有()
甲公司为增值税一般纳税人,适用的增值税税率为17%。有关资料如下:(1)2×12年2月2日,甲公司购入一台需要安装的生产用机器设备,取得的增值税专用发票上注明设备价款4640万元,增值税进项税额为788.80万元,支付运杂费80万元,款项已通过银行支付。
目前各种形式的大量的文艺作品,没内涵、缺生活,缺少社会意识,缺失人文关怀、时代精神,这几乎成了一种通病。过度娱乐化、远离心灵的文艺创作占据了主流文艺,文艺中泛娱乐化倾向严重,高雅文化已不再被向往和尊重。一些文艺创作人士,希望把人民币以正当稿费的形式尽快装进
中国银行保险监督管理委员会属于国务院的()。
行为人基于一个犯罪意图所支配的数个不同的罪过,实施一个危害行为,而触犯两个以上异种罪名的犯罪形态叫()。
Recentlythecarfactoryhadtocarryoutpersonnel____becauseoffinancialtrouble.
最新回复
(
0
)