首页  编辑  

求圣经数迭代次数

Tags: /超级猛料/Alogrith.算法和数据结构/   Date Created:
//  给定任意一个3的倍数的数,求得到圣经数的迭代次数
//  153被称作“圣经数”,任写一个3的倍数,把各位数字的立方相加,
// 得出和,再把和的各位数字立方后相加,如此反复进行,最后必然出现“圣经数”。
// 例如:24是3的倍数,按照上述规则,进行变换的过程是:
// 24→2³+3³→(72)→7³+2³→(351)→3³+5³+1³→153

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
	int n, y, total = 0, count;
	cin >> n;

	count = 0;
	while (total != 153) {
		total = 0;
		cout << "\n-->";
		while (n > 0)
		{
			y = n % 10;
			cout << y << "^3+";
			total = total + y*y*y;
			n = n / 10;
		}
		cout << "=" << total;
		count++;
		n = total;
	}

	cout<<"\n"<<count;
	cin;
    return 0;
}