【Java】算法题
来源:互联网 发布:oracle数据培训 编辑:程序博客网 时间:2024/06/05 05:45
public class mission1 {// 伟大的马克思的手稿中有这样一道有趣的数学题:// 有30个人,其中可能有男人,女人,小孩。他们在一家饭馆中吃饭,共花费50先令。// 如果每个男人吃饭要花3先令,每个女人要花2先令,每个小孩要花1先令,// 问男人,女人,小孩各多少人?(有几种可能性) public static void main(String[] args) { int nman = 0; int nwoman = 0; int nboy = 0; int count = 0; System.out.println("男人\t" + "女人\t" + "小孩"); // for (nman = 0; nman<17; nman++) {// // for(nwoman = 0; nwoman<=25; nwoman++){// // for(nboy = 0; nboy<=50; nboy++){// // if((50 == (nman*3 + nwoman*2 + nboy*1))&&(30 == nman + nwoman + nboy)){// System.out.println(nman + "\t" + nwoman + "\t" + nboy);// count++;// }// }// }// } for(; nman <= 10; nman++){ //nman + nwoman + nboy = 30 //nman*3 + nwoman*2 + nboy*1 = 50 nwoman = 20 - 2 * nman; nboy = 30 - nman - nwoman; if(50 == (nman*3 + nwoman*2 + nboy*1)){ System.out.println(nman + "\t" + nwoman + "\t" + nboy); count++; } } System.out.println("总共有" + count + "种。"); }}
================================================================================================
// 1. 两数交换程序 (两种方法)//// 输出互换前手中的纸牌:// 左手中的纸牌: 10// 右手中的纸牌: 8//// 输出互换后手中的纸牌:// 左手中的纸牌: 8// 右手中的纸牌: 10// 提示: 可以设置一个中间数public class mission1 { public static void main(String[] args) { int a = 10; int b = 8; System.out.println("\t交换前:a = " + a + "\tb = " + b); method1 m1 = new method1(a, b); method2 m2 = new method2(a, b); method3 m3 = new method3(a, b); }}class method1 { int temp; public method1(int a, int b) { temp = a; a = b; b = temp; System.out.println("method1 交换后:a = " + a + "\tb = " + b); }}class method2 { public method2(int a, int b) { a = a ^ b; b = a ^ b; a = a ^ b; System.out.println("method2 交换后:a = " + a + "\tb = " + b); }}class method3 { public method3(int a, int b) { a = a + b; b = a - b; a = a - b; System.out.println("method3 交换后:a = " + a + "\tb = " + b); }}
================================================================================================
import java.util.Scanner;public class mission2 {// 求2+22+222+2222+22222+.....n次 的值// 提示:// System.out.println("请输入统计的次数:");// int n = input.nextInt(); public static void main(String[] args) { Scanner sc = new Scanner(System.in); Integer num = sc.nextInt(); int factor = 0; int sum = 0; int count = 0; // for (int j = num; j >=1; j--) {// // for(int i = j - 1; i >= 0; i--){// // sum += factor * Math.pow(10, i);// // }// count++;// } for (int i = 0; i < num; i++) { factor = factor * 10 + 2; sum += factor; count++; }// System.out.println(factor); System.out.println("统计" + count + "次。"); System.out.println("值为: " + sum); }}
================================================================================================
public class Daffodil {// 打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,// 其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",// 因为153=1的三次方+5的三次方+3的三次方 public static void main(String[] args) { Daffodil da = new Daffodil(); for(int i = 100; i<=999; i++){ int a = i / 100; int b = i / 10 % 10; int c = i % 10; if(da.isDaffodil(i)){ System.out.println(i + "=" + a + "的三次方 + " + b + "的三次方 + " + c + "的三次方"); } } } public boolean isDaffodil(int i){ int a = i / 100; int b = i / 10 % 10; int c = i % 10; if (i == (a*a*a + b*b*b + c*c*c)) { return true; } else{ return false; } } }
================================================================================================
//求1+2!+3!+...+20!的和public class mission2 { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 20; i++) { sum += multi(i); } System.out.println(sum); } public static int multi(int num){ //计算阶乘 if(num == 1 || num == 0){ return 1; } else{ return (num * multi(--num)); } }}
1 0
- 常见JAVA算法题
- Java经典算法题
- Java 算法题 一
- java算法测试题
- java算法题
- java面试算法题
- JAVA算法题
- JAVA算法题
- Java 算法题-01
- Java-算法题-02
- -java算法题
- java 九九乘法表算法题
- Java算法题
- java 算法40题
- 【Java】算法题
- 面试-java算法题
- java常用算法题
- java算法题
- 开源中国源码解析之检测更新
- ACM训练目标
- java实现微博后台登录后台发送微博
- 工作第一天
- Spring基于ThreadLocal的“资源-事务”线程绑定设计的缘起
- 【Java】算法题
- 值得推荐的C/C++框架和库
- create a 2D map
- ContentProvider基本使用
- 如何提高android代码质量
- linux下mysql的安装
- POJ 2677 双调欧几里得旅行商问题
- iOS巅峰之点击UIAlertView的灰色部分也能dismiss消失
- 安卓Timpicker样式修改、多版本适配、ScrollView滑动冲突