JAVA问题啊,考试要用,急
4编写一个java类prime,其中只有一个静态方法,boolean is prime(int n)//方法测试n是否是素数,如果是返回true,如果不是返回false.已知Babbage函数f(x)=x的平方+x+41,其中x为自然数,当x小于特定的n之前所有的函数值均为素数,编写一个测试类,其中的main方法找出这个特定n值.提示:x初始值为1,当y输出值不为素数时,循环停止.
5、编写程序,利用数列4*(1-1/3+1/5-1/7+1/9-1/11+……)来取得∏的近似值,并计算在得到3.14159之前这个数列要取到第几项?
6、由键盘输入两个字符串:“12”与“24”,将它们转换成整数,然后计算并输出这两个数的和。
7、完全数是指其所有因子(包括1但不包括该数自身)的和等于该数,例如28=1+2+4+7+14,28就是一个完全数。编写一个程序,求出2到10000之间的所有完全数。(循环结构)
8、将两个各有6个整数的数组,合并成一个由小到大排列的数组(该数组的长度为12)
9、编写程序:以递归的方式实现1+2+3+……+n (n=200)的计算
提示:1+2+3+……+n=(1+2+……+n-1)+ n
f(n)=f(n-1)+n
int acc(int n){
if (n==1) return 1;
else return acc(n-1)+n;
参考答案:4:
/**
*
* @author LecH.giF
*/
public class Prime {
/** Creates a new instance of Prime */
public Prime() {
}
static boolean isPrime(int n){
if(n<=1)
return false;
if(n==2||n==3)
return true;
if(n%2==0)
return false;
for(int i=3;i<n;i=i+2){
if(n%i==0)
return false;
}
return true;
}
public static void main(String[] args) {
int x = 1;
int y = x*x+x+41;
while(isPrime(y)){
x++;
y = x*x+x+41;
}
System.out.println(x);
}
}
5:
import java.math.BigDecimal;
/**
*
* @author LecH.giF
*/
public class DoSomething1 {
private static final int DEF_DIV_SCALE = 5;
/** Creates a new instance of DoSomething1 */
public DoSomething1() {
}
public static void main(String[] args) {
for(int i=0;;i++){
float result = doit(i);
BigDecimal b1 = new BigDecimal(result);
BigDecimal b2 = new BigDecimal((float)1/4);
double re = b1.divide(b2,5,BigDecimal.ROUND_HALF_UP).doubleValue();
if(re==3.33968){
System.out.println(i);
break;
}
}
}
static float doit(int n){
float total=0;
for(int i=1, x=0;i<=2*n+1;i=i+2,x++){
if(x%2==0)
total =total+(float)1/i;
else
total =total-(float)1/i;
}
return total;
}
}
提示~这个数列好像得不到3。14159~
我就把它改成了3.14159
6:
/**
*
* @author LecH.giF
*/
import java.io.*;
public class DoSomething {
/** Creates a new instance of DoSomething */
public DoSomething() {
}
public static void main(String[] args) {
int i1;
int i2;
System.out.println("请输入第一个整数");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true){
try {
String a1=br.readLine();
i1 = Integer.parseInt(a1);
break;
} catch (IOException ex) {
ex.printStackTrace();
}catch(NumberFormatException e){
System.out.println("输入格式错误,请重新输入");
}
}
System.out.println("请输入第二个整数");
while(true){
try {
String a2=br.readLine();
i2 = Integer.parseInt(a2);
break;
} catch (IOException ex) {
ex.printStackTrace();
}catch (NumberFormatException e){
System.out.println("输入格式错误,请重新输入");
}
}
System.out.println(i1+i2);
}
}
7:
/*
* Num.java
*
* Created on 2007年1月16日, 下午1:40
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package com.lech;
/**
*
* @author LecH.giF
*/
public class Num {
/** Creates a new instance of Num */
public Num() {
}
public static void main(String[] args) {
for(int i =1;i<=2000;i++){
if(doit(i))
System.out.println(i);
}
}
static boolean doit(int n){
int total=0;
for(int i=1;i<n;i++){
if(n%i==0)
total =total +i;
}
if(total==n)
return true;
return false;
}
}
8:
/**
*
* @author LecH.giF
*/
import java.io.*;
public class DoSomething {
/** Creates a new instance of DoSomething */
public DoSomething() {
}
public static void main(String[] args) {
int i1;
int i2;
System.out.println("请输入第一个整数");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true){
try {
String a1=br.readLine();
i1 = Integer.parseInt(a1);
break;
} catch (IOException ex) {
ex.printStackTrace();
}catch(NumberFormatException e){
System.out.println("输入格式错误,请重新输入");
}
}
System.out.println("请输入第二个整数");
while(true){
try {
String a2=br.readLine();
i2 = Integer.parseInt(a2);
break;
} catch (IOException ex) {
ex.printStackTrace();
}catch (NumberFormatException e){
System.out.println("输入格式错误,请重新输入");
}
}
System.out.println(i1+i2);
}
}
9:
/**
*
* @author LecH.giF
*/
public class And {
/** Creates a new instance of And */
public And() {
}
public static void main(String[] args) {
System.out.println(cal(100));
}
static int cal(int i){
if(i!=1)
return cal(i-1)+i;
else
return 1;
}
}