利用動態數組輸入100~999內的水仙數數

#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;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章