java小算法复习

package com.bshinfo.bm.util;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;

public class Test {

//菱形
public void test1(){
for (int i = 0; i < 5; i++) {//行数
for (int j = 0; j <5-i-1; j++) {//空格
System.out.print(" ");
}
for (int k = 0; k < 2*(i+1)-1; k++) {//星号
System.out.print("*");
}
System.out.println("");
}
for (int i = 5; i > 0; i--) {//行数
for (int j =5-i+1; j >0; j--) {//空格
System.out.print(" ");
}
for (int k = 2*(i-1)-1; k >0; k--) {//星号
System.out.print("*");
}
System.out.println("");
}
}
//菱形
public void test2(int n){
for(int i = 0; i < n - 1; i++){
for(int x = i + 1; x < n; x++){
System.out.print(" ");
}
for(int y = 0; y < (i + 1) * 2 - 1; y++){
System.out.print("*");
}
System.out.println();
}
for(int i = 0; i < n; i++){
for(int x = 0; x < i; x++){
System.out.print(" ");
}
for(int y = i; y < 2 * n - i - 1; y++){
System.out.print("*");
}
System.out.println();
}
}

//三角形
public void test3(){
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5-i-1; j++) {
System.out.print(" ");
}
for (int j = 0; j < i+1; j++) {
System.out.print("*");
}
System.out.println("");
}
}

//九九乘法表
public void test4(){

for (int i = 1; i < 10; i++) {
for (int j = 1; j < i+1; j++) {
System.out.print(j+"*"+i+"="+(i*j)+" ");
}
System.out.println("");
}
}
//统计字符串中字符出现的个数
public void test5(){
String str = "asdfsadfewrtewfxzfagres";
Map<String,Integer> map =new HashMap<String,Integer>();
int count = str.length();
for (int i = 0; i < count; i++) {
if(map.containsKey(str.substring(i, i+1))){
int temp = map.get(str.substring(i, i+1));
temp++;
map.put(str.substring(i, i+1), temp);
}else{
map.put(str.substring(i, i+1),1);
}
}
for (String key:map.keySet()) {
int value = map.get(key);
System.out.println("字符 "+key+" 出现的次数是"+value);
}
}
//判断是否输入的是水仙花数
public void test6(){
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int count = str.length();
if(count%2!=0){
int temp = 0;
for (int i = 0; i < count/2; i++) {
int temp1 = Integer.parseInt(str.substring(i, i+1));
int temp2 = Integer.parseInt(str.substring(count-i-1, count-i));
if(temp1!=temp2){
System.out.println(str +" 不是水仙花数!");
return;
}else{
temp++;
}
}
if(temp == (count/2)){
System.out.println(str +" 是水仙花数!");
}
}

}
public static void main(String[] args) {

Test test = new Test();
test.test1();
test.test2(5);
test.test3();
test.test4();
test.test5();
test.test6();
}

}

时间: 2024-10-02 11:49:22

java小算法复习的相关文章

java 小算法

1.数组元素切换 A[] a = new A[len];//len 为int型数组长度 int index = 0; A b = a[index++/con%a.length];//con为可控切换时间 2.计时器控制 Timer timer = new Timer() int intervel =10; //时间间隔10毫秒 int index = 0; timer.schedule(new TimerTask(){             public void run(){        

java每日小算法(27)

/* [程序27]  题目:求100之内的素数    */ package test; import java.util.Scanner; public class test { public static boolean prime(int number) { boolean flag = true; int mid = (int)Math.sqrt(number); for(int i = 2; i< mid+1; i++) { if(number % i == 0) { flag = fa

java每日小算法(4)

[程序4] 题目:将一个正整数分解质因数.例如:输入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的值,重复执行第一步. package test; import java.util.ArrayList;

java每日小算法(10)

/*[程序10]  题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? */ package test; public class test { public static void main(String[] args) { // TODO Auto-generated method stub double high = 100.0; double jump = 0.0; double sum = 0.0; for(

java每日小算法(3)

[程序3] 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位. package test; public class test { public static boolean daffodil(int num) { boolean flag

java每日小算法(6)

/*[程序6] 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 1.程序分析:利用辗除法. */ package test; public class test { //最大公约数 public static int commonisor(int n, int m) { int max = (n>=m)?n:m; int min = (n>=m)?m:n; int r = max % min; while(r != 0) { max = min; min = r; r = max %

java每日小算法(5)

/*[程序5] 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. 1.程序分析:(a>b)?a:b这是条件运算符的基本例子. */ package test; public class test { public static String grade(int num) { String result = (num>=90)?"A":(num>=60)?"B":&quo

java每日小算法(7)

/*[程序7] 题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 1.程序分析:利用while语句,条件为输入的字符不为'\n'. */ package test; import java.util.ArrayList; import java.util.List; public class test { public static List<Integer> countstr(String input) { List<Integer> result = n

java每日小算法(8)

/*[程序8] 题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. */ package test; import java.util.Scanner; public class test { public static int sum(int number, int input) { int result = 0; int tem = number; for(int i = 0;