特殊的回文数 —蓝桥杯(java版)
题目描述
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
输入一行,包含一个正整数n。
输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。
import java.util.Scanner;
public class Main {
public static void main (String []args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
//五位十进制数
for(int i = 10000;i < 100000;i++) {
int a=i%10;
int b=i/10%10;
int c=i/100%10;
int d=i/1000%10;
int e=i/10000%10;
if(n==a+b+c+d+e) {
if(a==e&&b==d) {
StringBuffer sb=new StringBuffer(); //本意是 将int类型的数转换为字符串类型 方便拼接
sb.append(a);
sb.append(b);
sb.append(c);
sb.append(d);
sb.append(e);
System.out.println(sb.toString());
}
}
}
//六位十进制数
for(int i = 100000;i < 1000000;i++) {
int a=i%10;
int b=i/10%10;
int c=i/100%10;
int d=i/1000%10;
int e=i/10000%10;
int f=i/100000%10;
if(n==a+b+c+d+e+f) {
if(a==f&&b==e&&c==d) {
StringBuffer sb=new StringBuffer();
sb.append(a);
sb.append(b);
sb.append(c);
sb.append(d);
sb.append(e);
sb.append(f);
System.out.println(sb.toString());
}
}
}
}
}
//没有大差 本质相同
import java.util.Scanner;
public class Main {
public static void main (String []args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for(int i = 10000;i < 100000;i++) {
int a=i%10;
int b=i/10%10;
int c=i/100%10;
int d=i/1000%10;
int e=i/10000%10;
if(n==a+b+c+d+e && a==e&&b==d) {
String f=a+""+b+""+c+""+d+""+e;
System.out.println(f);
}
}
for(int i = 100000;i < 1000000;i++) {
int a=i%10;
int b=i/10%10;
int c=i/100%10;
int d=i/1000%10;
int e=i/10000%10;
int f=i/100000%10;
if(n==a+b+c+d+e+f && a==f&&b==e&&c==d) {
String g=a+""+b+""+c+""+d+""+e+""+f;
System.out.println(g);
}
}
}
}
引用方法:
public StringBuilder append(int i) 将int参数的字符串表示法附加到此序列
如果想要简单的实现数字的拼接可以
int a=2;
int b=5;
String c=a+""+b;
System.out.println(c);
拓展StringBuffer 与 StringBuilder
StringBuffer的主要方法:(他们被重载以便接受任何类型的数据)
append():在尾部添加
insert():在指定位置添加
如果 StringBuffer sb=new StringBuffer();
则sb.append(x)=sb.insert(sb.length(), x)。
StringBuffer:主要就是可变字符序列,字符缓冲区就像一个String,但可以修改。在任何时间点,它包含一些特定的字符序列,但可以通过某种方法调用来更改序列的长度和内容。
VS
StringBuilder(在可能的情况下,建议使用这个类别优先于StringBuffer ,因为它在大多数实现中将更快.)
主要方法:(他们是重载的,以便接受任何类型的数据)
append():在构造器的末尾添加
insert():在指定位置添加
每个都有效地将给定的数据转换为字符串,然后将该字符串的字符附加或插入字符串构建器。每个字符串构建器都有一个容量。 只要字符串构建器中包含的字符序列的长度不超过容量,则不需要分配新的内部缓冲区。 如果内部缓冲区溢出,则会自动变大。