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,企业发放 ...
随机推荐
- mysql开发之---使用游标双层嵌套对总表进行拆分为帖子表和回复表
注意点: (1)进行拆分的总表表名是不同的.所以创建暂时表,把总表的数据先插入暂时表 (2)为了避免最外层游标轮询数据结束时,抛出 not found 退出程序,不会运行关闭游标等兴许操作,定义con ...
- javascript 设计模式 -- 发布/订阅模式
直接上代码: index.html : <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- js 根据所输内容生成助记码
js生成与中文字符串相对映的拼音首字母串 CreateTime--2017年7月14日16:35:31Author:Marydon 需要工具js文件letter.js,代码如下: /** 作者:梅 ...
- 企业级监控工具Cacti安装配置全过程
Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.它通过 snmpget来获取数据,使用 RRDtool绘画 ...
- 工作总结 页面通过ajax 动态绑定 列表页面 列表每一项的事件 事件触发多次
遇到一个问题 困惑了两天 页面的事件不知道为什么触发多次 试了各种办法 对比了之前的页面 各种测试 不是js css 外部链接 重复加载问题 也不是嵌套的 div 问题 各种都试过 最终发现 是 ...
- H5中滚动卡顿的问题
加入-webkit-overflow-scrolling: touch;即可
- jQuery 遍历 - eq() 和siblings() 方法
eq() 方法将匹配元素集缩减值指定 index 上的一个. 通过为 index 为 2 的 div 加入适当的类.将其变为蓝色: <!DOCTYPE html> <html> ...
- fedora20配置静态ip
在linux的世界里.给主机设置固定ip是这么做的(使用root用户): 1.查看要配的网络接口 用ifconfig查看查看在用的网卡接口,一般都用第一个如:eth0,en1,em1等 2.停用网络自 ...
- sklearn函数白板
#使用make_classification构造500个样本,每个样本有20个feature from sklearn.datasets import make_classification X, y ...
- 机器学习11—Apriori学习笔记
votesmart下载 https://pypi.python.org/pypi/py-votesmart test11.py #-*- coding:utf-8 import sys sys.pa ...