首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MagicNumber类,该类是一个用于表示连续正整数序列的类。MagicNumber的成员函数Nar-cissistic的功能是查找该序列中的水仙花数水仙花数是指一个n位
请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MagicNumber类,该类是一个用于表示连续正整数序列的类。MagicNumber的成员函数Nar-cissistic的功能是查找该序列中的水仙花数水仙花数是指一个n位
admin
2016-08-19
59
问题
请使用“答题”菜单或使用VC6打开考生文件夹proj3下的工程proj3,其中声明了MagicNumber类,该类是一个用于表示连续正整数序列的类。MagicNumber的成员函数Nar-cissistic的功能是查找该序列中的水仙花数水仙花数是指一个n位数(n>=3),其每个位上的数字的13次方之和等于该数本身,例如153就是一个3位的水仙花数(153=1*1*1+5*5*5+3*3*3))。请编写成员函数Narcissistic。在main函数中给出了一组测试数据,若输入3,此时程序的输出应该是:3位的水仙花数共4个:
153
370
371
407
注意:只需在//**********333**********和//**********666**********之间填人所编写的若干语句,不要改动程序中的其他内容。
1 #include"MagicNumber.h"
2 void MagicNumber::Narcissistic()
3 {
4 int i,number,sum,figures[30];
5 for(number=min;number
6 {
7 int x=number;i=0;
8 while(x!=0){figures
=x%10;i++;x/=i0;)
9 //********333********
10
11
12 //********666********
13 }
14 }
15 int main()
16 {
17 int d;
18 cout<<"请输入位数:";
19 cin>>d;
20 MagicNumber obj(d);
21 obj.Narcissistic();
22 obj.Print(string("水仙花数"));
23 writeToFile("c:\\test\\");
24 return 0;
25 }
1 //proj3\MagicNumber.h
2 #include
3 #include
4 #include
4 using namespace std;
5 class MagicNumber
6 {
7 public:
8 MagicNumber(int d):digits(d),min(pow(10,digits-1)),max(pow(10,digits)-1),count(0){)
9 MagicNumber(int x1,int x2):min (x1),max(x2){}
10 void ResetCount(){count=0;}
11 int GetCount()const{returncount;}
12 int GetSet(int index)(returnset[index];}
13 void Narcissistic(); //查找水仙花数
13 void Print(string&str)
14 {
15 cout<
16 for(int i=0;i
17 cout<
18 }
19 private:
20 int digits; //Magic数的位数
2l int min,max; //待计算的数值范围
22 int count; //Magic数的数量
23 int set[20]; //Magic数集合
24 };
25 void writeToFile(const char*);
选项
答案
1 sum=0; 2 for(i=i-1;i>=0;i--) 3 { 4 sum+=pow(figures[i],digits); 5 } 6 if(sum==number) 7 { 8 set[count++]=number; 9 }
解析
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://kaotiyun.com/show/04Np777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在程序设计阶段应该采取【】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
假定MyClass为一个类,那么下列的函数说明中,()为该类的析构函数。
下列有关算法的描述中,错误的是()。
类Contain的定义如下:classContain{private:intx;protected:intz;public:classEmbed{
假定MyClass为一个类,则该类的拷贝构造函数的声明语句为()。
下列函数中,哪项是正确的递归函数()。AintFun(intn){if(n<1)return1;elsereturnn*Fun(n+1);}B)
下面程序的输出结果是【】。#include〈iostream〉usingnamespacestd;voidf(intx){if(x){cout.put(’0’+x
对于长度为n的线性表,若进行顺序查找,则时间复杂度为【】。
重载的关系运算符和逻辑运算符的返回类型应当是______。
下列程序的输出结果是【】。#include<iostream>usingnamespacestd;intmain(){inti=5;iht&r=i;r=7;
随机试题
《宝玉挨打》:“‘别说老太太、太太心疼,就是我们看着,心里也疼。’刚说了半句又忙咽住。”说这句话的人是()
甲减患者使用左旋甲状腺素治疗时应用原则是
宫缩乏力性产后出血临床表现正确的是
《企业财务通则》的适用范围是()。
监理工程师在进行工程项目质量控制中,应贯彻( )的职业道德规范。
税率的高低直接关系国家财政收入的多少和纳税人的负担程度,是税收法律制度中的核心要素。
沃尔公司作为零售业中的一个巨头,其成功是建立在利用信息技术整合优势资源并将信息技术战略与零售业整合的基础之上。早在1974年,公司就开始在其分销中心和各家商店运用计算机进行库存控制。1983年,沃尔的整个连锁商店系统都用上条形码扫描系统。1984年,沃尔开
2×16年1月1日,经股东大会批准,甲公司向50名高管人员每人授予1万份股票期权。根据股份支付协议规定,这些高管人员自2×16年1月1日起在甲公司连续服务满3年,即可以每股5元的价格购买1万股甲公司普通股股票。2×16年1月1日,每份股票期权的公允价值为1
Clerk:Goodmorning.CanIhelpyou?Mr.Smith:Yes,I’dlikeatickettoNewYork9:15tomorrowmorning.Clerk:______?Mr.Smit
Itwasaone-linechatreplyfromanAncestryDNAcustomer-servicerepthatrippedCatherineSt.Clair’slife.At57,shewasher
最新回复
(
0
)