BASIC-9特殊回文数

资源限制

时间限制:1.0s   内存限制:512.0MB

问题描述

  123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。

输入格式

  输入一行,包含一个正整数n。

输出格式

  按从小到大的顺序输出满足条件的整数,每个整数占一行。

样例输入

52

样例输出

扫描二维码关注公众号,回复: 10876989 查看本文章

899998
989989
998899

数据规模和约定

  1<=n<=54。

思路:先把五位和六位的回文数求出来,然后拆开加和看看与要求的和是否一样

import java.util.*;
public class Main {

	public static int judge(int num,int sum_tar) {//逐位拆开加和,看看是不是与给定的相等,num是回文数,sum_tar是题目要求的和
		int sum=0,tmp=num;//sum用来保存数的每位和
		while (tmp>0) {
			sum+=tmp%10;
			tmp=tmp/10;
		}
		if(sum==sum_tar)
			return num;
		else
			return -1;
	}
	

	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		String string;
		for (int i=10000;i<=999999;i++)//求回文数,还是利用字符串反转进行会问的判断
		{
			int tmp;
			string=String.valueOf(i);
			String string2=new StringBuffer(string).reverse().toString();//求回文数,还是利用字符串反转进行会问的判断
			if(string.equals(string2))
			{
				tmp=judge(i, n);
				if(tmp>0)
					System.out.println(tmp);
			}
		}
	}
	
}
发布了82 篇原创文章 · 获赞 10 · 访问量 6211

猜你喜欢

转载自blog.csdn.net/qq_41705207/article/details/105392498