Java習題——迴圈3
阿新 • • 發佈:2018-12-30
- 任意輸入一個整數(小於10位),求這個整數有多少位?
package cn.edu.nefu; import java.util.Scanner; public class Test01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("請輸入一個整數:"); int x = sc.nextInt(); int y = x; int sum = 0;//位數 if(x==0){ sum = 1; }else{ while(y>0){ sum++; y/=10; } } System.out.println("整數"+x+"有"+sum+"位"); } }
- 一個整數,它加上1000後是一個完全平方數,再加上1680又是一個完全平方數,請問該數是多少?在10萬以內判斷
package cn.edu.nefu; public class Test02 { public static void main(String[] args) { int num1; int num2; for(int i=0;i<=100000;i++){ num1 = (int) Math.sqrt(i+1000); num2 = (int) Math.sqrt(i+1680); if(num1*num1==i+1000&&num2*num2==i+1680){ System.out.println("這個數是"+i); } } } }
- 小明有五本新書,要借給A,B,C三位小朋友,若每人每次只能借一本,求可以有多少種不同的借法?將結果列印輸出
package cn.edu.nefu; public class Test03 { public static void main(String[] args) { int a,b,c; int count=0; for(a=1;a<=5;a++){ for(b=1;b<=5;b++){ for(c=1;c<=5;c++){ if(a!=b&&a!=c&&b!=c){ count++; } } } } System.out.println("可以有"+count+"種借法"); } }
4.中國古代數學家研究出了計算圓周率最簡單的辦法:
PI=4/1-4/3+4/5-4/7+4/9-4/11+4/13-4/15+4/17......
這個算式的結果會無限接近於圓周率的值,我國古代數學家祖沖之計算出,圓周率在
3.1415926 和3.1415927 之間,請程式設計計算,要想得到這樣的結果,他要經過多少次加減法運算?
package cn.edu.nefu;
public class Test04 {
public static void main(String[] args) {
double PI = 0;
int k = 1;//分母
int count = -1;//運算次數
int i = 1;
while(PI<=3.1415926||PI>=3.1415927){
PI += 4.0/k*i;
k += 2;
i *= -1;
count++;
}
System.out.println("需要經過"+count+"次運算");
}
}
5.A、B、C、D、E五個人在某天夜裡合夥去捕魚,到第二天凌晨時都疲憊不堪,於是各自找地方睡覺。日上三杆,A第一個醒來,他將魚分為五份,把多餘的一條魚扔掉,拿走自己的一份。B第二個醒來,也將魚分為五份,把多餘的一條魚扔掉,保持走自己的一份。C、D、E依次醒來,也按同樣的方法拿走魚。問他們合夥至少捕了多少條魚?
package cn.edu.nefu;
public class Test05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 1;//魚的數量
for(int i=1;i<=5;i++){
sum = sum*5+1;
}
System.out.println("他們合夥至少捕了"+sum+"條魚");
}
}
6.計算1!+2!+3!+…+n!的和
package cn.edu.nefu;
import java.util.Scanner;
public class Test06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入n的值:");
int n = sc.nextInt();
int sum = 0;
int k = 1;//每個數的階乘
for(int i=1;i<=n;i++){
k *=i;
sum +=k;
}
System.out.println(sum);
}
}
7.求輸入任意一個int型別的數字儲存的二進位制裡面含有多少個 1.
package cn.edu.nefu;
import java.util.Scanner;
public class Test07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個二進位制數:");
int num = sc.nextInt();
int a = num,b = 0;
int count = 0;//1的數量
while(a>0){
a /= 10;
b = a%10;
if(b==1){
count++;
}
}
System.out.println("二進位制數字"+num+"中含有"+count+"個1");
}
}
8.打出如下圖形 (N=5)
1
121
12321
1234321
123454321
package cn.edu.nefu;
public class Test08 {
static int N = 5;
public static void main(String[] args) {
for(int i=1;i<=N;i++){
for(int j=1;j<2*N;j++){
if(j<=N-i){
System.out.print(" ");
}else if(j<=N){
System.out.print(j-N+i);
}else if(j<=N+i-1){
System.out.print(N-j+i);
}
}
System.out.println();
}
}
}