几道java的编程题

(1) 求1到100之间3的倍数之和
(2) 求两个整数的最高公因数和最小公倍数
(3)定义一个长度为10的一维数组,初始值为10个整数,输出他们的最小值和最大值
(4)给定三个整数,按从小到大顺序排列
(5)已知:π/4=1 - 1/3 + 1/5 - 1/7+ …… 求π的值 (只考虑前100项的和)

第1个回答  2009-12-20
(1)
public class Sum {

public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=100;i++){
if(i%3==0){ //如果是3的倍数加起来
sum = sum + i;
}
}
System.out.println("1到100之间3的倍数之和是:"+sum);
}

}
(2)
public class GCD {

public static void main(String[] args) {
int min = MIN(4,7);
int max = MAX(4,7);
System.out.println("最小公倍数是:"+min);
System.out.println("最大公因数是:"+max);
}

//求最大公因数的EUCLID算法
public static int MAX(int A, int B) {
int R;
while (true) {
if (B == 0)
return A;
else {
R = A % B;
A = B;
B = R;
}
}
}
//求最小公倍数的EUCLID算法
public static int MIN(int A, int B) {
if(A%B==0) return A;
if(B%A==0) return B;
int i=A>B?B:A;
for(; i<=A*B; i++){
if(i%A==0&&i%B==0){
break;
}
}
return i;
}
}
(3)
public class Sort {

public static void main(String[] args) {
int[] num = {10,8,7,5,6,9,2,3,1,4};//随意定义了一个长度为10的整数数组
//冒泡排序,最小的在最上面,最大的在最下面
for(int i=0;i<num.length;i++){
for(int j=i;j<num.length;j++){
if(num[i]>num[j]){
int temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
System.out.println("最小数是:"+num[0]);
System.out.println("最大数是:"+num[num.length-1]);
}

}
(4)
public class Compare {
public static void main(String[] args) {
//需要排序的三个整数
int a=1,b=3,c=2;
//最终排序结果存放在min,middle,max中,分别为最小、中间和最大
int min=0,middle=0,max=0;
//三个数之间相互比较
if(a>=b&&a>=c){
max = a;
if(b>=c) {min=c;middle=b;}
else {min=b;middle=c;}
}
else if(b>=a&&b>=c){
max = b;
if(a>=c){min=c;middle=a;}
else {min=a;middle=c;}
}
else if(c>=a&&c>=b){
max = c;
if(a>=b){min=b;middle=a;}
else {min=a;middle=b;}
}
//输出排序结果
System.out.println("最小数是:"+min);
System.out.println("中间数是:"+middle);
System.out.println("最大数是:"+max);
}
}
(5)
public class PI {

public static void main(String[] args) {
int count = 1;
int flag = 1;
float PI=0;
for(int i=0;i<100;i++){
PI = PI + (float)1/count*flag;
count = count + 2;
flag = -flag;
}
PI = PI * 4;
//输出计算结果
System.out.println("π的计算结果是"+PI);
}
}