温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java怎么实现十全时数

发布时间:2022-03-02 10:35:41 来源:亿速云 阅读:153 作者:iii 栏目:web开发

这篇文章主要介绍了java怎么实现十全时数的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java怎么实现十全时数文章都会有所收获,下面我们一起来看看吧。

假如电子计时器所显示的十个数字是“1115093028”这样一串数,它表示的数是11月15日9时30分28秒.

在这串数中,“0”出现了2次,“1”出现了三次,“2”、“3”、“5”、“8”、“9”各出现了一次,

而“4”、“6”、“7”没有出现.如果在电子计时器所显示的这串数里,0,1,2,3,4,5,6,7,8,9这

十个数字都只出现一次,称它所表示的时刻为“十全时”,那么2003年一共有__个这样的“十全时”.

注:按24小时制记时.

首先,闰年不可能多出十全时,因为0229已经有重复数字了。

那么,一年有多少个十全时呢?下面给出一个“另解”。

月可以是01到12,日可以是01到31,时可以是00到23,分可以是00到59,秒也可以是00到59。

也就是说,6,7,8,9只能做个位数字,4和5如果放到十位数字上只能是分和秒的十位数字。

那么,第五个个位数字是什么呢?

如果是0,则月的十位是1,只能是10月,这样时最少是26,不合理;

如果是1,同样,2,3也无法合理安排到月,日,时的十位;

如果是2,同样,3也无法合理安排到月,日,时的十位;

如果是3,应该把0,1,2安排到月,日,时的十位,4和5放到分和秒的十位。月的十位必须是0。

如果2放到日的十位,安排4和5有2种方法,3,6,7,8,9有5!=120种方法,共240种;

如果2放到时的十位,则时只能是23,安排4和5有2种方法,6,7,8,9有4!=24种方法,共48种。

此类小计288种。

如果是4或5,此时有2种选法。月的十位是0,时的十位是1,月的十位是2。时和分的十位有2种选法,

五个数的个位仍有5!=120种方法,共有2×2×120=480种。

共计288+480=768种。

下面给出详细代码解决过程

package cn.hncu.shiquanshu;

public class Shiquanshu {

static int count=0;

public static void main(String[] args) {

String str="";

sqs(str);//进行递归运算

System.out.println(count);

}

private static void sqs(String str) {

if(str.length()==10){

System.out.println(str);

count++;

return;

}

String temp=new String(str);

for(int i=0;i<=9;i++){

if(validate(str, ""+i)){

str+=i;

sqs(str);

}

str=new String(temp);

}

}

private static boolean validate(String str,String x) {

if(str!=null&&str.length()>0){

if(str.indexOf(x)>=0){

return false;

}

if(str.length()>0){

if(str.charAt(0)>'1'){

return false;

}

}

if(str.length()>1){

if(str.charAt(0)=='1'){

if(str.charAt(1)>'2'){

return false;

}

}

}

if(str.length()>2){

if(str.charAt(2)>'3'){

return false;

}

}

if(str.length()>3){

if(str.charAt(2)=='3'){

if(str.charAt(3)>'1'){

return false;

}

}

}

if(str.length()>4){

if(str.charAt(4)>'2'){

return false;

}

}

if(str.length()>5){

if(str.charAt(4)=='2'){

if(str.charAt(5)>'3'){

return false;

}

}

}

if(str.length()>6){

if(str.charAt(6)>'5'){

return false;

}

}

if(str.length()>8){

if(str.charAt(8)>'5'){

return false;

}

}

}

return true;

}

}

关于“java怎么实现十全时数”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“java怎么实现十全时数”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI