Notice: Undefined index: name in /usr/www/lib/views/home/viewtitle.html on line 188
-完善程序 第 24 题
(水仙花数问题)给定一个n <= 15,令所有十进制下长度为n的数,其各数位的n次方之和等于这个数本身,我们称这个数为水仙花数,例如当n = 3, 153 = 1^3 + 5^3 + 3^3。当n = 4, 1634 = 1^4 + 6^4 + 3^4 + 4^4。 你需要求出所有n位的水仙花数的和。
#include <cstdio>
using namespace std;

long long cost[10], ans;

int cnt[10], t[10], n;

void dfs(int rest, int now, long long current) {
	if (rest == 0) {
		long long temp = current;
		for (int i = 0; i < 10; i++)
			t[i] = 0;
		while (temp > 0) {
			++t[temp % 10];
			temp /= 10;
		}
		bool flag = 1;
		for (int i = 0; i < 10; i++)
			if (cnt[i] != t[i]) {
				flag = 0;
				break;
			}
		if (flag) {
			__(1)__;
		}
		return;
	}
	if ( __(2)__ ) {
		return;
	}
	for (cnt[now] = 0; cnt[now] <= rest; cnt[now]++)
		dfs(rest - cnt[now], now + 1, __(3)__ );
	cnt[now] = 0;
}
int main()
{
	scanf("%d", &n);
	for (int i = 0; i < 10; i++) {
		cost[i] = 1;
		for (int j = 0; j < n; j++)
			__(4)__ ;
	}
	dfs( __(5)__ );
	printf("%lld\n",ans);
	return 0;
}
● 单选题
第 1 题 ⑴处应填( )。
第 2 题 ⑵处应填( )。
第 3 题 ⑶处应填( )。
第 4 题 ⑷处应填( )。
第 5 题 ⑸处应填( )。

解答部分以后会开放。