算法-蓝桥杯-基础练习 特殊回文数 (JAVA)
2018-03-22 20:40
435 查看
1 引言
这道题目是“回文数”的延伸,不会做“回文数”这个问题的朋友,可以点击这里。现在我们开始讲解,今天这道“特殊回文数”的问题。
2 题目问题描述
123321是一个非常特殊的数,它从左边读和从右边读是一样的。
输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式 输入一行,包含一个正整数n。输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。样例输入52样例输出899998
989989
998899数据规模和约定 1<=n<=54。
3 源代码(第一种)
import java.util.*;class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for(int i=1;i<=9;i++)
for(int j=0;j<=9;j++)
for(int k=0;k<=9;k++)
for(int m=0;m<=9;m++)
for(int q=0;q<=9;q++)
{
if(i==q&&j==m)
{
if(i+j+k+m+q==n)
System.out.printf("%d%d%d%d%d\n",i,j,k,m,q);
}
}
for(int i=1;i<=9;i++)
for(int j=0;j<=9;j++)
for(int k=0;k<=9;k++)
for(int m=0;m<=9;m++)
for(int q=0;q<=9;q++)
for(int w=0;w<=9;w++)
{
if(i==w&&j==q&&k==m)
{
if(i+j+k+m+q+w==n)
System.out.printf("%d%d%d%d%d%d\n",i,j,k,m,q,w);
}
}
}
}
4 源代码(第二种)
import java.util.*; class Main { public static void main(String[] args) { int i,m; Scanner sc=new Scanner(System.in); m=sc.nextInt(); for(i=10000;i<=99999;i++) { int a,b,c,d,e; //取出各位的数字 a=i/10000; b=(i-a*10000)/1000; c=(i-a*10000-b*1000)/100; d=(i-a*10000-b*1000-c*100)/10; e=(i-a*10000-b*1000-c*100-d*10); if(a==e&&b==d) { if((a+b+c+d+e)==m) { System.out.println(i); } } } for(i=100000;i<=999999;i++) { int a,b,c,d,e,f; a=i/100000; b=(i-100000*a)/10000; c=(i-100000*a-10000*b)/1000; d=(i-100000*a-10000*b-1000*c)/100; e=(i-100000*a-10000*b-1000*c-100*d)/10; f=i-100000*a-10000*b-1000*c-100*d-10*e; if(a==f&&b==e&&c==d) { if((a+b+c+d+e+f)==m) { System.out.println(i); } } } } }
5 思路讲解
第一种方法与“回文数”那道题目,解法相似,都是设置多重循环,符合要求就输出;第二种方法(以五位数为例)是从“10000”到“99999”开始遍历,设置五个变量,取出每一位的数字,然后再判断是否符合题目的要求,符合就输出。两种代码的书写形式虽然不同,但是整体的思路还是相同。不知道两种代码的性能如何,我没有学习过算法分析,我截取了蓝桥杯上两种代码运行结果的截图,哪位朋友可以帮忙分析一下两种算法的性能?截图中上面的是第一种代码运行结果,下面的是第二种代码的运行结果。
6 结束语
从来没想过,自己竟然可以使用两种方法。。。。。我会继续努力!分享和帮助是人生一大乐事,希望可以帮助您。本人才疏学浅,如果有不当之处,还请批评指正。同时欢迎大家评论、点赞及转发!
相关文章推荐
- 蓝桥杯 基础练习-特殊回文数-java
- 蓝桥杯 基础练习 特殊回文数 高效算法
- 算法-蓝桥杯-基础练习 特殊的数字 (JAVA)
- 蓝桥杯 基础练习 特殊回文数 JAVA
- Java-蓝桥杯- 基础练习 特殊的数字
- 蓝桥杯 基础练习 特殊回文数
- 蓝桥杯试题集 基础练习 特殊回文数
- 蓝桥杯习题集_ 基础练习 特殊回文数
- 蓝桥杯 基础练习 特殊回文数/回文数
- 【蓝桥杯练习系统】基础练习 特殊回文数
- 蓝桥杯 BASIC-9 基础练习 特殊回文数
- 蓝桥杯 基础练习 特殊回文数
- java基础练习 特殊回文数
- 蓝桥杯基础练习(数列排序+特殊回文数+回文数+特殊的数字)
- 蓝桥杯java 基础练习 特殊回文数
- 蓝桥杯 基础练习 特殊回文数
- 蓝桥杯“基础练习:特殊回文数
- 蓝桥杯 【基础练习】 特殊回文数
- 算法-蓝桥杯-基础练习 数列排序(JAVA)
- 蓝桥杯 【基础练习】 特殊回文数