3、6174问题

描述

假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回到了它自己!现在要你写一个程序来判断一个四位数经过多少次这样的操作能出现循环,并且求出操作的次数

比如输入1234执行顺序是1234->3087->8352->6174->6174,输出是4

import java.util.Arrays;

public class ACM6174 {

public static void main(String[] args) {
int x=1234;
int count=0;
while(x!=6174){
x=jianfa(x);
count++;
}
System.out.println(count+1);
}

public static int jianfa(int a){
int b=congdadaoxiao(a)-congxiaodaoda(a);
return b;
}
public static int congdadaoxiao(int a){
String str=a+"";
int[] in=new int[str.length()];
for(int i=0;i<str.length();i++){
char ch=str.charAt(i);
in[i]=Integer.parseInt(ch+"");
}
Arrays.sort(in);
String st="";
for(int i=0;i<in.length;i++){
st=st+in[i];
}
String s="";
for(int i=st.length()-1;i>=0;i--){
char ch=st.charAt(i);
s=s+ch;
}
int b=Integer.parseInt(s);
return b;
}
public static int congxiaodaoda(int a){
String str=a+"";
int[] in=new int[str.length()];
for(int i=0;i<str.length();i++){
char ch=str.charAt(i);
in[i]=Integer.parseInt(ch+"");
}
Arrays.sort(in);
String st="";
for(int i=0;i<in.length;i++){
st=st+in[i];
}
int b=Integer.parseInt(st);
return b;
}
}

2、另一种阶乘问题

描述

大家都知道阶乘这个概念,举个简单的例子:5!=1*2*3*4*5.现在我们引入一种新的阶乘概念,将原来的每个数相乘变为i不大于n的所有奇数相乘例如:5!!=1*3*5.现在明白现在这种阶乘的意思了吧!

现在你的任务是求出1!!+2!!......+n!!的正确值(n<=20)

输入

第一行输入一个a(a<=20),代表共有a组测试数据

接下来a行各行输入一个n.

输出

各行输出结果一个整数R表示1!!+2!!......+n!!的正确值

public class Demo1 {

public static void main(String[] args) {
int n=5;
System.out.println(method(n));

}
public static int method(int n){
int sum=0;
for(int i=1;i<=n;i++){
sum+=method1(i);
}
return sum;
}
public static int method1(int n){
int sum=1;
for(int i=1;i<=n;i++){
if(i%2==1){
sum*=i;
}
}
return sum;
}
}

1、韩信点兵

描述相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。

解法一:

method(2,3,4);

public static void method(int a,int b,int c){
for(int i=10;i<=100;i++){
if(i%3==a&&i%5==b&&i%7==c){
System.out.println(i);
}
}
}

扩展二:

public class Demo1 {
public static void main(String[] args) {
//System.out.println(ChooseOne.getRandom()+" -> 将完成此道题目。");

String str=aA(2,1,6); //方法调用
str=str.substring(0, str.length()-1); //字符串截取,去掉最后一个逗号
System.out.println("总共有士兵数:"+str);
}

//韩信点兵
public static String aA(int a,int b,int c){
String s="";
for(int x=10;x<=1000;x++){ //遍历10道100之间的整数
if(x%3==a && x%5==b && x%7==c){ //如果3人一排余a,并且5人一排余b,并且7人一排余c
s+=x+",";
}
}
if(!s.equals("")){
return s;
}
return "No answer";
}
}

ACM 韩信点兵 、n的另一种阶乘、6174的问题的更多相关文章

  1. java练手 韩信点兵

    Problem C 韩信点兵 时间限制:3000 ms  |  内存限制:65535 KB   描述 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排.五人一排.七人一排地变换队 ...

  2. 18.12.02-C语言练习:韩信点兵

    C语言练习:韩信点兵 题目说明:本题是中国经典问题,有多种解法,从数论课程角度看,是一个不定方程组,而且答案不唯一. 但这里采用程序解法,使用的是暴力破解.枚举可能的解,然后根据条件判断,满足所有条件 ...

  3. [C++]2-2 韩信点兵

    /* 韩信点兵 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排.五人一排.七人一排地变换队 形,而他每次只掠一眼队伍的排尾就知道总人数了.输入多组数据,每组数据包含3个非负整数 ...

  4. YTU 2677: 韩信点兵

    2677: 韩信点兵 时间限制: 1 Sec  内存限制: 128 MB 提交: 61  解决: 38 题目描述 刘邦问韩信:"你觉得我可以带兵多少?"韩信:"最多十万. ...

  5. cogs——1786. 韩信点兵

    1786. 韩信点兵 ★★★   输入文件:HanXin.in   输出文件:HanXin.out   简单对比 时间限制:1 s   内存限制:256 MB [题目描述] 韩信是中国军事思想“谋战” ...

  6. hdu acm 1166 敌兵布阵 (线段树)

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  7. COGS 1786. 韩信点兵

    ★★★   输入文件:HanXin.in   输出文件:HanXin.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] 韩信是中国军事思想“谋战”派代表人物,被后人奉为“ ...

  8. COGS——T 1786. 韩信点兵

    http://www.cogs.pro/cogs/problem/problem.php?pid=1786 ★★★   输入文件:HanXin.in   输出文件:HanXin.out   简单对比时 ...

  9. NYOJ题目34韩信点兵

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAskAAAHiCAIAAACV1MbSAAAgAElEQVR4nO3dPXLjONeG4W8TyrUQx1 ...

随机推荐

  1. 5月3日上课笔记-XML解析

    一.XML编程 1.xml编程的两种解析方式 1.1 dom解析 优点:一次加载,多次使用.可以方便的对xml文档进行增删改查 缺点:如果xml文档过大的话,加载的时候会比较占用内存空间比较大,消耗资 ...

  2. thinkphp5的程序部署到虚拟主机的配置

    thinkphp5的程序部署到虚拟主机的配置 建议不要,因为这些目录文件会全部保留,那么没办法的时候咋整 1 htdocs 虚拟主机上的   把public/index.php修改 改动后的放到 ht ...

  3. leetcode819

    public class Solution { public string MostCommonWord(string paragraph, string[] banned) { //"a, ...

  4. JSP显示错误信息中四个范围来保存变量

    JSP中提供了四个范围来保存变量,分别是page,request,session,以及application 其中page范围只在当前页面有效,离开当前页面就失效了,这个肯定不行 request范围在 ...

  5. 跟着太白老师学python day11 函数名的应用 globals(), locals()

    1.  函数名就是内存地址 def func(): ') print(func) >>>> <function func at 0x00000000003DC1E0> ...

  6. 关于BigDecimal类型在jsp页面中进行除法运算问题

    出自:http://blog.csdn.net/u011910290/article/details/52935337 问题描述: 在项目编写过程中,发现BigDecimal在jsp中进行除法运算时, ...

  7. 出现The folder is already a source folder

    右键build path -> configure build path -> source ,选择 src/main/java.src/test/java删除,然后再新建.

  8. Linux任务前后台的切换(转)

    Linux任务前后台的切换   Shell支持作用控制,有以下命令实现前后台切换: 1. command& 让进程在后台运行 2. jobs 查看后台运行的进程 3. fg %n 让后台运行的 ...

  9. 第2章地址Address(WCF全面解析3)

    WCF顾明思义,就是在Windows平台下解决通信(C,Communication)的基础框架(F,Foundation)问题. 终结点是WCF最为核心的对象,因为它承载了所有通信功能.服务通过相应的 ...

  10. springmvc基本知识点

    springmvc高级知识: