求取值范国内所有满足条件的x,使得x的每位数字的立方和与本身相等。 [编程要求〕 试建立一个类DIF,完成求出某个范围内的所有满足条件的x, 以及x的个数。 具体要求如下 1)私有数据成员。 int low,high:x的取值范国的下限和上限。 int a【100】:存放满足要求的× int count :满足条件的x的个数。 (2)公有成资函教 DIF(int Iw,int. hi)=构造函数,用参数1w和hi分别初始化low和high。缺省的取值范围是 [10,1000]。 int isdiff(int x)=判断参数x是否为水仙花数 返回1,若不是返口0 void process():求存满足条件的所有x,并将结果存入数组a,同时统计x的个数。 void show():输出数组a及count。 (3)在主函数中完成对该类的测试。定义一个DIF类的对象v,使用100和999初始化其下限和上限,按上述要求处理并输出结果。
时间: 2024-02-22 08:56:31 浏览: 24
以下是符合要求的代码:
```c++
#include <iostream>
using namespace std;
class DIF {
private:
int low, high;
int a[100];
int count;
int isdiff(int x) {
int sum = 0;
int temp = x;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == x;
}
public:
DIF(int lw = 10, int hg = 1000) {
low = lw;
high = hg;
count = 0;
}
void process() {
for (int i = low; i <= high; i++) {
if (isdiff(i)) {
a[count++] = i;
}
}
}
void show() {
cout << "满足条件的数有:" << endl;
for (int i = 0; i < count; i++) {
cout << a[i] << " ";
}
cout << endl;
cout << "共有" << count << "个符合条件的数。" << endl;
}
};
int main() {
DIF v(100, 999);
v.process();
v.show();
return 0;
}
```
输出结果:
```
满足条件的数有:
153 370 371 407
共有4个符合条件的数。
```