WA求调
  • 板块学术版
  • 楼主ddwjy
  • 当前回复11
  • 已保存回复11
  • 发布时间2025/1/13 14:06
  • 上次更新2025/1/13 17:29:13
查看原帖
WA求调
733242
ddwjy楼主2025/1/13 14:06

题目: 数学上有一个猜想叫作反序猜想,首先选择任意一个正整数 n,按照如下步骤进行操作: ①求出 n的反序数 m。 ②计算出 n+m的值。 ③将计算出的 n+m的值重新赋值给 n。 ④判断 n是否是回文数,若是则结束,否则重复步骤①-④。 在经过有限次数后, n最终会变成一个回文数,现在小T希望你帮他证明这个猜想,给你一个正整数 n,请你帮小T验证猜想是否成立。 反序数:对于一个正整数 k,将其从低位到高位重新组织成一个新的数字 m,称m为k的反序数。例如 132 k=132,则其反序数 231 m=231 回文数:对于一个正整数 k,若其反序数 m=k,则称 k为回文数。例如 232, k=232,则其反序数 232, m=232, k=m,所以 k是回文数。

输入:第一行—个正整数 n。

输出:第—行两个用空格隔开的正整数,分别表示执行的次数和最终的回文数值,如果猜想不成立,则输出 − 1

#include<bits/stdc++.h>
using namespace std;
int hw(int n){
	int js=0;
	while(n!=0){
		js++;
		n/=10;
	}
	return js;
}
int hww(int n){
	int j=hw(n);
	int y=0;int a;
	while(n>0){
		a=n%10;
		n=n/10;
		y=y*10+a;
	}
	return y;
}
int main(){
	int n,js;
	cin>>n;
	do{
		js++;
		n=n+hww(n);
	}while(n!=hww(n));
	cout<<js<<" "<<n;
	return 0;
}
2025/1/13 14:06
加载中...