文档章节

JAVA编程题(1-8)

Dylan1009
 Dylan1009
发布于 2014/08/17 16:45
字数 1392
阅读 20
收藏 0
package com.ahua.arithmetic;

/**题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
 * @author Administrator
 *
 */
public class ConditionOperator {

	public static void main(String[] args) {
		for (int i = 50; i < 100; i++) {
			getLevel(i);
		}

	}
	
	public static void getLevel(int score){
		System.out.println(score +":"+((score>=90)?"A":((score>=60)?"B":"C")));
	}
}
package com.ahua.arithmetic;

import java.util.ArrayList;

/**题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
 * @author Administrator
 *
 */
public class FenJie {

	public static void main(String[] args) {
		for (int i = 2; i < 150; i++) {
			ArrayList<Integer> result = fenjie(i);
			System.out.println(i+":"+result.toString());
		}
	}
	
	/** 对某个数进行质因数分解
	 * @param number
	 * @return
	 */
	public static ArrayList<Integer> fenjie(int number){
		ArrayList<Integer> result  = new ArrayList<Integer>();
		
		for(int j = 2; j < 150; j++){
			if(number%j==0 && isPrimeNumber(j) && number>=j){
				result.add(j);
				ArrayList<Integer> result2  =fenjie(number/j);
				for (int i = 0; i < result2.size(); i++) {
					result.add(result2.get(i));
				}
				break;
			}
		}
		
		return result;
	}
	/** 判断一个数是否是素数(质数)
	 * @param num
	 * @return
	 */
	public static boolean isPrimeNumber(int num){
		int half = num/2;
		for (int i = 2; i < half; i++) {
			if(num%i==0){
				return false;
			}
		}
		return true;
	}
}
package com.ahua.arithmetic;

/**题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
 * @author Administrator
 *
 */
public class FindDaffodilNumber {

	public static void main(String[] args) {
		for (int i = 100; i < 999; i++) {
			if(isDaffodilNumber(i)){
				System.out.println(i);
			}
		}

	}
	public static boolean isDaffodilNumber(int number){
		int tenNum =number/10%10;
		int hundredNum = number/100;
		int singleNum = number%10;
		int result = (int) (java.lang.Math.pow(tenNum, 3)+
				java.lang.Math.pow(hundredNum, 3)+
				java.lang.Math.pow(singleNum, 3)); 
		if(result==number){
			return true;
		}
		return false;
	}

}
package com.ahua.arithmetic;

/**题目:判断101-200之间有多少个素数,并输出所有素数。 
 *1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 
 *则表明此数不是素数,反之是素数。
 * @author Administrator
 *
 */
public class FindPrimeNumber {

	public static void main(String[] args) {
		for (int i = 101; i < 200; i++) {
			if(isPrimeNumber(i)){
				System.out.println(i);
			}
		}

	}

	public static boolean isPrimeNumber(int num){
		int half = num/2;
		for (int i = 2; i < half; i++) {
			if(num%i==0){
				return false;
			}
		}
		return true;
	}
}
package com.ahua.arithmetic;

import java.util.Scanner;

/**题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 
1.程序分析:利用辗除法。
 * @author Administrator
 *
 */
public class GcdTes {

	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		int gongyueshu = getGongyueshu(num1,num2);
		int gongbeishu = getGongbeishu(num1,num2);
		System.out.println(gongyueshu+":"+gongbeishu);
	}

	/** 两个数的最小公倍数= 两数乘积/最大公约数
	 * @param num1
	 * @param num2
	 * @return
	 */
	private static int getGongbeishu(int num1, int num2) {
		return num1*num2/getGongyueshu(num1,num2);
	}

	/** 两数的最大公约数:大数/小数,将余数代替大数,迭代求,直到余数为0时,倍除数就是最大公约数
	 * @param num1
	 * @param num2
	 * @return
	 */
	private static int getGongyueshu(int num1, int num2) {
		int a=0,b=0;
		if(num1>=num2){
			a = num1; b = num2;
		}else{
			b = num1; a = num2;
		}
		if(a%b==0){
			return b;
		}else{
			int c = a%b;
			return getGongyueshu(c,b);
		}
	}

}
package com.ahua.arithmetic;

import java.util.Scanner;

/**题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 
1.程序分析:利用while语句,条件为输入的字符不为'\n'.
 * @author Administrator
 *
 */
public class StChar {

	public static void main(String[] args) {
		 
		int abcCount=0;//英文字母个数
		int spaceCount=0;//空格键个数
		int numCount=0;//数字个数
		int otherCount=0;//其他字符个数
		
		Scanner scan=new Scanner(System.in);
		String str=scan.nextLine();
		char[] ch = str.toCharArray();
		for(int i=0;i<ch.length;i++){
			if(Character.isLetter(ch[i])){
				//判断是否字母
				abcCount++;
			}else if(Character.isDigit(ch[i])){
				//判断是否数字
				numCount++;
			}else if(Character.isSpaceChar(ch[i])){
				//判断是否空格键
				spaceCount++;
			}else{
				//以上都不是则认为是其他字符
				otherCount++;
			}
		}
		System.out.println("字母个数:"+abcCount);
		System.out.println("数字个数:"+numCount);
		System.out.println("空格个数:"+spaceCount);
		System.out.println("其他字符个数:"+otherCount);

	}

}
package com.ahua.arithmetic;

import java.util.ArrayList;
import java.util.Scanner;
import java.util.concurrent.ArrayBlockingQueue;

/**题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 
1.程序分析:关键是计算出每一项的值。
 * @author Administrator
 *
 */
public class TestAdd {

	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		int num1 = sc.nextInt();
		while (num1<=0||num1>9) {
			System.out.println("请输入一个个位数");
			num1 = sc.nextInt();
		}
		int num2 = sc.nextInt();
		while (num2<=0||num2>9) {
			System.out.println("请输入一个个位数");
			num2 = sc.nextInt();
		}
		ArrayList<Long> tempArray = new ArrayList<Long>();
		for (int i = 0; i < num2; i++) {
			Long temp = getNum(num1,i);
			tempArray.add(temp);
		}
		System.out.println(tempArray);
		long sum = 0L;
		for (int i = 0; i < tempArray.size(); i++) {
			sum += tempArray.get(i);
		}
		System.out.println(sum);
		
	}

	private static long getNum(int num1, int count) {
		long result = num1;
		for (int j = 0; j < count; j++) {
			result = result*10 + num1;
		}
		return result;
	}

}
package com.ahua.arithmetic;

public class TestRabbit {

	/**题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 
	 *	1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
	 * @param args
	 */
	public static void main(String[] args) {
		int a = 1;
		int b = 1;
		for (int i = 0; i < 12; i++) {
			if(i==0 || i==1){
				System.out.println(i+":"+a);
			}else{
				int temp = a+b;
				a = b;
				b = temp;
				System.out.println(i+":"+temp);
			}
			
			
		}

	}

}


© 著作权归作者所有

Dylan1009
粉丝 5
博文 195
码字总数 131086
作品 0
广州
程序员
私信 提问
百词斩Java程序员面试11个问题,你会几个?2018-04-10

近日,我们在w3cschool app开发者头条上,可以看到百词斩Java程序员面经。 在分享百词斩Java面经前,w3cschool特别给程序员小伙伴们带来一些Java学习干货: 0、学习Java必备的3大神器 如果你...

W3Cschool
2018/04/10
0
0
BAT等大厂Android面试书单和知识点清单

java是Android开发的基础,在BAT的初面中,会涉及到比较多的java基础知识,所以比较重要,下面我介绍的书籍内容是由浅到深。 1.Thinking in java:这本书被称为Java的三大圣经之一,虽然书比...

android自学
2018/07/25
0
0
Java面试:投行的15个多线程和并发面试题

本文由ImportNew -一杯哈希不加盐 翻译自dzone。欢迎加入翻译小组。转载请见文末要求。 多线程和并发问题已成为各种 Java 面试中必不可少的一部分。如果你准备参加投行的 Java 开发岗位面试,...

ImportNew
2018/08/23
0
0
阿里巴巴菜鸟Java一面11个问题,你会几个呢?

近日,w3cschool app开发者头条上分享了阿里菜鸟Java程序员一些面试题。 这吸引了不少程序员小伙伴们的注意。 在分享阿里菜鸟Java程序员面经前,来看下Java面试一些面试经验分享: 0、Java高...

W3Cschool
2018/04/03
0
0
提给程序员和开发者的 10 道 Java 泛型面试题

关于泛型的面试题在 Java面试中变得越来越常见,因为 Java 5问世已经有相当长的时间了,越来越多的应用已经迁移到Java 5上来了,并且几乎所有新的Java开发工作也都是在Tiger(Java 5的项目代号...

lwei
2013/10/18
13.6K
30

没有更多内容

加载失败,请刷新页面

加载更多

【jQuery基础学习】05 jQuery与Ajax以及序列化

本文转载于:专业的前端网站➭【jQuery基础学习】05 jQuery与Ajax以及序列化 好吧,这章不像上章那么水了,总是炒剩饭也不好。 关于AJAX 所谓Ajax,全名Asynchronous JavaScript and XML。(也...

前端老手
14分钟前
8
0
CVE-2019-14287(Linux sudo 漏洞)分析

作者:lu4nx@知道创宇404积极防御实验室 作者博客:《CVE-2019-14287(Linux sudo 漏洞)分析》 原文链接:https://paper.seebug.org/1057/ 近日 sudo 被爆光一个漏洞,非授权的特权用户可以...

极客君
15分钟前
4
0
关于分布式,你需要知道的真相

目录 一、分布式锁 数据库的唯一索引 Redis 的 SETNX 指令 Redis 的 RedLock 算法 Zookeeper 的有序节点 二、分布式事务 2PC 本地消息表 三、CAP 一致性 可用性 分区容忍性 权衡 四、BASE 基...

李红欧巴
15分钟前
5
0
读书笔记:深入理解ES6 (附录B)

附录B:了解ES7(2016)   ES6经历了4年的发展,之后TC-39决定将发布周期转换为每年一版,以确保新语言特性能够更快地发展。   ES6中添加了三个语法特性,下面一一来讲。 第1节 指数运算...

张森ZS
21分钟前
11
0
计算机公开课推荐 2019.8

欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 面试求职交流群 724187166 ApacheCN 学习资源 编程 哈佛 CS50:计算机科学导论 视频 MIT 6.00.1x:计算机科...

ApacheCN_飞龙
22分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部