问题是这样的:
问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式:
输入一行,包含一个正整数n。数据规模和约定1<=n<=54。
输出格式:
按从小到大的顺序输出满足条件的整数,每个整数占一行。
我是这么写的:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner kb=new Scanner(System.in);
int n=kb.nextInt();
for(int k=10000;k<99999;k++) {
int kbe=k/1000;
int kaf=k%10*10+k/100%10;
if(kbe==kaf && n==k%10*2+k/10%10*2+k/100%10) {
System.out.println(k);
}
}
for(int k=100000;k<999999;k++) {
int k1=k/1000;
int k2=k%10*100+k/10%10*10+k/100%10;
if(k1==k2 && n==k%10*2+k/10%10*2+k/100%10*2) {
System.out.println(k);
}
}
}
}
运行测试显示:
看起来和预期结果一样呀
但是提交后显示:
不明白为什么
希望大家帮我看看,本人Java小白,望不吝赐教。
应该这样写在是完整的:
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
System.out.println("请输入n:");
int n = kb.nextInt();
int total = 0;
int a,b,c,d,e,f;
for (int k = 10000; k < 1000000; k++) {
if(k < 100000) {
a = k/10000;
b = k/1000%10;
c = k/100%10;
d = k/10%10;
e = k % 10;
if(a==e && b==d) {
System.out.println(k);
total++;
}
}else {
a = k/100000%10;
b = k/10000%10;
c = k/1000%10;
d = k/100%10;
e = k /10%10;
f = k % 10;
if(a==f && b==e && c==d) {
System.out.println(k);
total++;
}
}
if(total>n)
break;
}
}
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y