【循环测试试题2】小X与三次方

题目描述

卡卡西要过 10 岁生日啦!今年,她特别想要一份与众不同的礼物,那就是一条能在阳光下发出五光十色耀眼光芒的水晶项链。她把这个想法告诉了妈妈。妈妈对卡卡西神秘的一笑,透露道:"邻居芭比阿姨家有个后花园。她的花园里有很多漂亮的水晶珠。可是芭比阿姨从来不会轻易让人进入她的后花园,你必须回答出她提出的问题,才可以进去采集水晶珠......"还没等妈妈说完,卡卡西已经迫不及待的飞奔而去。她来到芭比阿姨家,说明了来意,芭比阿姨乐呵呵的说:"卡卡西,如果你能回答出我的问题,我可以让你进入我的水晶花园。我的问题很简单,给你一个三位数,你要对这个三位数的各位数字的 3 次方求和,然后再对求出的和中各位数字的 3 次方求和,如此一直继续下去,判断最后能否得到一个不再变化的固定值。如能得到一个固定值,就告诉我这个固定值;如果不能,则告诉我提示信息"error"。注意了,在求解过程中,若某一次求和得到的值超过 3 位数,则取该数的低三位继续往下运算...... 例如:对于三位数 111,则第一次计算应该是 1×1×1 + 1×1×1 + 1×1×1=3。第二次应是 0×0×0 + 0×0×0 + 3×3×3=27。第三次应是 0×0×0 + 2×2×2 + 7×7×7=351。第四次应是 3×3×3 + 5×5×5 + 1×1×1=153。第五次应是 1×1×1 + 5×5×5 + 3×3×3=153,与第四次结果重合,不再计算,输出固定值 153。"亲爱的小朋友们,你也来和卡卡西一起锻炼一下思维吧。


输入

一行,一个三位数 N(100≤N≤999)。


输出

一行,如能得到一个固定值,则输出这个固定值;如 10000 次变化还没找到,就输出提示信息"error"。


样例数据
输入
复制代码
样例输入1 
111 

样例输入2 
253

输出
复制代码
样例输出1 
153 

样例输出2 
error

数据范围限制

40%的数据 100≤N≤500。 100%的数据 100≤N≤999。


代码
cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,sum=0,ans;
	cin>>n;
	sum=ans=n;
	for(int i=1;i<=10000;i++)//控制循环次数,以免死循环
	{
		int a=ans/100%10;//百位(记得%10)
		int b=ans%100/10;//十位
		int c=ans%10;//个位
		ans=a*a*a+b*b*b+c*c*c;//更新ans
		if(sum==ans)//如果和sum相同
		{
			cout<<ans;//输出
			return 0;//并结束程序
		}
		else sum=ans;//传给sum
	}
	cout<<"error";//否则输出error
	return 0;
}
相关推荐
Fuly102422 分钟前
大模型剪枝(Pruning)技术简介
算法·机器学习·剪枝
Xの哲學28 分钟前
Linux网卡注册流程深度解析: 从硬件探测到网络栈
linux·服务器·网络·算法·边缘计算
bubiyoushang88831 分钟前
二维地质模型的表面重力值和重力异常计算
算法
仙俊红1 小时前
LeetCode322零钱兑换
算法
颖风船1 小时前
锂电池SOC估计的一种算法(改进无迹卡尔曼滤波)
python·算法·信号处理
551只玄猫1 小时前
KNN算法基础 机器学习基础1 python人工智能
人工智能·python·算法·机器学习·机器学习算法·knn·knn算法
charliejohn1 小时前
计算机考研 408 数据结构 哈夫曼
数据结构·考研·算法
POLITE31 小时前
Leetcode 41.缺失的第一个正数 JavaScript (Day 7)
javascript·算法·leetcode
CodeAmaz2 小时前
一致性哈希与Redis哈希槽详解
redis·算法·哈希算法