利用动态数组输入100~999内的水仙数数

本文介绍了一个使用C++实现的程序,该程序能够找出指定范围内所有能表示为其各位数字立方和的整数,并将这些整数输出。通过定义函数计算一个三位数是否等于其各位数字立方和的方法,程序实现了这一功能。
#include<iostream>
using namespace std;

int s(int n);
inline int lf(int n){ return n*n*n; }

int main(){
	int m, n;
	cin >> m >> n;
	int count = 0;
	int *p = new int[4];//如果不指定动态数组的大小,在delete时会出现触发断点的错误,这与new delete工作的原理有关
	for (int i = m; i<=n; i++){
		if (s(i) == i){
			p[count] = i;
			count++;
		}
	}
	if (count == 0)
		cout << "no" << endl;
	for (int i = 0; i < count - 1; i++)
		cout << p[i] << " ";
	cout << p[count - 1];
	delete[]p;
	system("pause");
	return 0;
}

int s(int n){
	int s1 = -1;
	if (n<100 || n>999)
		return s1 ;
	int g = n % 10;
	int s = n / 10 % 10;
	int b = n / 100;
     s1 = lf(g) + lf(s) + lf(b);
	return s1;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值