- 任意输入一个整数(小于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();
}
}
}