java習題——迴圈2
1.輸出圖型
*
**
***
****
*****
******
public class Test01 {
public static void main(String[] args) {
for(int i=1;i<=6;i++){
for(int j=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
2 輸出圖型
*******
******
*****
****
***
**
*
public class Test02 { public static void main(String[] args) { for(int i=7;i>=1;i--){ for(int j=1;j<=i;j++){ System.out.print("*"); } System.out.println(); } } }
3 .把1、2題的兩個圖型合成一個。
public class Test03 { public static void main(String[] args) { for(int i=1;i<=6;i++){ for(int j=1;j<=i;j++){ System.out.print("*"); } System.out.println(); } for(int i=7;i>=1;i--){ for(int j=1;j<=i;j++){ System.out.print("*"); } System.out.println(); } } }
4.編寫一個九九乘法表
public class Test04 {
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
5 .百錢買百雞,有100元錢,要去買100只雞,公雞5元一隻,母雞3元一隻,小雞1元3只,問公,母,小雞各買多少隻。
提示: a+b+c=100 只
5a+3b+1/3c=100錢
public class Test05{
public static void main(String[] args) {
for (int cock=1;cock<=20;cock++ ){
for (int hen=1;hen<=33;hen++ ){
if(7*cock+4*hen==100)
System.out.println("公雞買"+cock+"只,母雞買"+hen+"只,小雞買"+(100-cock-hen)+"只");
}
}
}
}
6 .星型圖案
*
***
*****
*******
*********
public class Test06 {
public static void main(String[] args) {
for(int i=1;i<=5;i++){
for(int j=1;j<10;j++){
if(j<=(5-i)||j>=(5+i)){
System.out.print(" ");
}else{
System.out.print("*");
}
}
System.out.println();
}
}
}
7 .把上圖形再倒過來,合成一個菱形圖案
public class Test07{
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int j=1;j<10;j++){
if(j<=Math.abs(5-i)||j>=(10-Math.abs(5-i))){
System.out.print(" ");
}
else{
System.out.print("*");
}
}
System.out.println();
}
}
}
8 .打印出一個空菱形圖案
public class Test08 {
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int j=1;j<10;j++){
if(j==(Math.abs(5-i)+1)||j==(9-Math.abs(5-i))){
System.out.print("*");
}
else{
System.out.print(" ");
}
}
System.out.println();
}
}
}
9.求300-400之間的素數
public class Test09{
public static void main(String[] args) {
System.out.println("300-400之間的素數有:");
for (int i=300;i<400 ;i++ ){
boolean flag = true;
for (int j=2;j<=i/2 ;j++ ){
if (i%j==0){
flag = false;
break;
}
}
if (flag==true){
System.out.print(i+" ");
}
}
}
}
10. 輸出一個平行四邊形的圖案
public class Test10 {
public static void main(String[] args) {
for (int i=1;i<=4 ;i++ ){
for (int j=1;j<=8 ;j++ ){
if (j>(4-i)&&j<(9-i)){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}
11.用while做 雞兔同籠。雞兔一共有50只,腳一共有160只,問雞和兔各多少隻?要求雞兔至少一樣一隻。
public class Test11 {
public static void main(String[] args) {
int chicken = 1;
while (chicken<50){
if (2*chicken+4*(50-chicken)==160){
System.out.println("雞有"+chicken+"只,兔有"+(50-chicken)+"只");
}
chicken++;
}
}
}
12.計算2/1+3/2+4/3+…+(n+1)/n,寫出演算法的程式.
import java.util.Scanner;
public class Test12 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("請輸入n的值:");
double n = s.nextDouble();
double sum=0;
for (double i=1;i<=n;i++ ){
sum+=(i+1)/i;
}
System.out.println(sum);
}
}
13.2000年我國人口為13億,如果人口每年的自然增長率為7%,那麼多少年 後我國人口將達到15億?設計一個演算法的程式
public class Test13 {
public static void main(String[] args) {
int sum=0;
double population = 13;
while (population<15){
population*=1.07;
sum++;
}
System.out.println(sum+"年後我國的人口將達到15億");
}
}
14.給出50個數,1,2,4,7,11,„,其規律是:第1個數是1,第2個數比第1個數大1,第3個數比第2個數大2,第4個數比第3個數大3,„,以此類推. 要求計算這50個數的和. 先將下面給出的程式框圖,再根據程式框圖寫出程式.
public class Test14 {
public static void main(String[] args) {
int sum=0,j=1;
for (int i=1;i<=50 ;i++){
j+=(i-1);
sum+=j;
}
System.out.println("這50個數的和為:"+sum);
}
}
15.有個人想知道,一年之內一對兔子能繁殖多少對?於是就築了一道圍牆把一對兔子關在裡面。已知一對兔子每個月可以生一對小兔子,而一對兔子從出生後第3個月起每月生一對小兔子。假如一年內沒有發生死亡現象,那麼,一對兔子一年內(12個月)能繁殖成多少對? 分析:兔子的規律為數列,1,1,2,3,5,8,13,21
public class Test15 {
public static void main(String[] args) {
int f1 = 1;
int f2 = 1;
int sum = 0;
for(int i = 3; i <= 12; i++){
sum = f1 + f2;
f1 = f2;
f2 = sum;
}
System.out.println("一對兔子一年內能繁殖成" + sum + "對。");
}
}
16. 水仙花數(Narcissistic number)也被稱為超完全數字不變數、自戀數、自冪數,水仙花數是指一個 n 位數(n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身(例如:1^3 + 5^3+ 3^3 = 153),請通過程式找出所有的3位數的水仙花數(窮舉法)
public class Test16 {
public static void main(String[] args) {
System.out.println("100-1000中的水仙花數有:");
for (int i=100;i<1000;i++ ){
int ge = i%10;
int shi = i/10%10;
int bai = i/10/10%10;
if(i == (ge*ge*ge+shi*shi*shi+bai*bai*bai)){
System.out.println(i);
}
}
}
}
17. 從控制檯輸入一個正整數,並進行反轉輸出
import java.util.Scanner;
public class Test17 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個整數:");
int num=sc.nextInt();
int result=0;
while(true) {
int n=num%10;
result=result*10+n;
num=num/10;
if(num==0) {
break;
}
}
System.out.println(result);
}
}