ACN经典例题1
1、韩信点兵
描述相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入3个非负整数a,b,c
,表示每种队形排尾的人数(a<3,b<5,c<7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100 。
输入
输入3个非负整数a,b,c ,表示每种队形排尾的人数(a<3,b<5,c<7)。例如,输入:2 4 5
输出
输出总人数的最小值(或报告无解,即输出No answer)。实例,输出:89
样例输入
2 1 6
样例输出
41
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道1000之间的整数
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";
}
}
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!!的正确值
样例输入
2
3
5
样例输出
5
public class Demo2 {
23
public static void main(String[] args) {
System.out.println(ChooseOne.getRandom()+" -> 将完成此道题目。");
//1!!+2!!+3!!...+n!!
int n=5;
int sum=0;
for(int i=1;i<=n;i++){
sum+=jieChengOther(i);
}
//以上是业务
System.out.println(sum);
}
//另一种阶乘
public static int jieChengOther(int x){
int sum=1;
for(int i=1;i<=x;i++){
if(i%2!=0){ //如果是奇数
sum*=i;
}
}
return sum;
}
}
3、6174问题
描述
假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数,并且继续操作。例如,从1234出发,依次可以得到4321-1234=3087、8730-378=8352、8532-2358=6174,又回到了它自己!现在要你写一个程序来判断一个四位数经过多少次这样的操作能出现循环,并且求出操作的次数
比如输入1234执行顺序是1234->3087->8352->6174->6174,输出是4
输入
第一行输入n,代表有n组测试数据。
接下来n行每行都写一个各位数字互不相同的四位数
输出
经过多少次上面描述的操作才能出现循环
样例输入
1
1234
样例输出
4
public class Demo3 { public static void main(String[] args) {
System.out.println(ChooseOne.getRandom()+" -> 将完成此道题目。");
int n=1234;
//6532-2356=4176
//=7641-1467=6174
//System.out.println(fromBigToSmall(5632)); //测试单个方法是否可用
int count=0;
while(n!=6174){
n=fromBigToSmall(n)-fromSmallToBig(n);
count++;
}
count++; //6174->6174也算一次
System.out.println("次数"+count); }
public static int fromBigToSmall(int x){
//5632 -> 6532
String str=x+"";
int[] ins=new int[str.length()];
for(int i=0;i<str.length();i++){
ins[i]=Integer.parseInt(str.charAt(i)+"");
}
Arrays.sort(ins);
String temp="";
for(int i=0;i<ins.length;i++){
temp+=ins[i];
}
//将temp进行字符串反转赋给ret
String ret="";
for(int i=0;i<temp.length();i++){
ret+=temp.charAt(temp.length()-1-i);
}
return Integer.parseInt(ret);
}
public static int fromSmallToBig(int x){
String str=x+"";
int[] ins=new int[str.length()];
for(int i=0;i<str.length();i++){
//System.out.print(str.charAt(i)+" ");
ins[i]=Integer.parseInt(str.charAt(i)+"");
//System.out.print(ins[i]+" ");
}
Arrays.sort(ins); //从小到大排序
String temp="";
for(int i=0;i<ins.length;i++){
temp+=ins[i];
}
return Integer.parseInt(temp);
}
}
ACN经典例题1的更多相关文章
- C语言经典例题100
C语言经典例题100 来源 http://www.fishc.com 适合初学者 ----------------------------------------------------------- ...
- C语言中的经典例题用javascript怎么解?(一)
C语言中的经典例题用javascript怎么解?(一) 一.1+2+3+……+100=? <script type="text/javascript"> ...
- 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】
首先,了解一下循环嵌套的特点:外层循环转一次,内层循环转一圈. 在上一篇随笔中详细介绍了JS中的分支结构和循环结构,我们来简单的回顾一下For循环结构: 1.for循环有三个表达式,分别为: ①定义循 ...
- 到底什么是dp思想(内含大量经典例题,附带详细解析)
期末了,通过写博客的方式复习一下dp,把自己理解的dp思想通过样例全部说出来 说说我所理解的dp思想 dp一般用于解决多阶段决策问题,即每个阶段都要做一个决策,全部的决策是一个决策序列,要你求一个 最 ...
- 整数划分——真正的递归经典例题(NYOJ——90)
先注明学习博客的地址:(http://www.cnblogs.com/hoodlum1980/archive/2008/10/11/1308493.html) 题目描述:任何正整数n都可以写成n=n1 ...
- 经典例题(Python)
经典例题 if嵌套 1.用户输入账号2.用户输入密码3.判断用户的账号是不是alex4.如果账号是alex在继续判断密码是不是alexdsb5.账号和密码都正确提示用户alex就是一个dsb6.如果账 ...
- Java之线程通信的应用:经典例题:生产者/消费者问题
/** * 线程通信的应用:经典例题:生产者/消费者问题 * * 生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品, * 店员一次只能持有固定数量 ...
- arm汇编几个经典例题
这几个例题来自我们的上机实验,通过这几个例题基本上能掌握arm汇编一些最基本的操作 arm汇编实现1-100的加法 12345678910111213 AREA Example1,CODE,READO ...
- C语言经典例题(菜鸟教程100例)
学习c语言基础,怎么能少了菜鸟教程上的100道例题呢,这里整理一下每道题的链接,希望大家能享受学习的乐趣 1,有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 2,企业发放 ...
随机推荐
- red5截屏
在red5-web.xml添加 <bean id="rtmpSampleAccess" class="org.red5.server.stream.RtmpSamp ...
- TCP/IP详解 卷一(第十九章 TCP的交互数据流)
TCP需要同时处理两类数据:块数据.交互数据. 本章将以Rlogin应用为例观察交互数据的传输过程. 交互式输入 首先观察在一个Rlogin连接上键入一个交互命令时所产生的数据流(每键入一个交互按键都 ...
- 超高逼格Log日志打印
代码地址如下:http://www.demodashi.com/demo/12646.html 前言 Log日志的打印一直是一个比较头疼的事,怎样才能让自己的log显示更多信息,怎样才能让自己的log ...
- Android实用工具
1 json类:hiJson 格式化json字符串 2 sqlite类:sqlitespy,SQLiteExpertSetup 3
- ps选框工具全解
我们每次选择工具的时候,ps上面都会变成特定的选项,比如说下面这些: 比如说选区工具的话就分为新选区.添加选区.交叉选区之类的,这些都是需要在实战中练习的. 不单单是选区有这个工具,其他的也有这个功能 ...
- web开发方法
request.getContextPath()是在开发Web项目时,经常用到的方法,其作用是获取当前的系统路径.
- git学习之安装(二)
安装Git 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和 ...
- windows svchost.exe 引起的出现的莫名其妙的窗口失去焦点
我不知道你们遇到没,反正我是遇到了,现在我就把解决方法给你们,当然都是从网上整理下来的 这个失去焦点可以分为两种,一种是病毒,一种是系统自带的问题 首先你得知道自己的窗口被什么给挤掉了焦点 先看看这篇 ...
- JSP 表单处理向服务器提交信息
JSP 表单处理 我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理.浏览器中使用 GET 和 POST 方法向服务器提交数据. GET 方法 GET方法将请求的编码信息添加在网址后面, ...
- shell脚本57问
[1]交互方式.非交互方式.Shell脚本是什么? 经常与linux打交道,肯定对shell这个词不陌生.不明白shell意思的,可以自行翻译:外壳.去壳. 这个翻译结果怎么可以与计算机系统联系起来呢 ...