1. 求 2/1+3/2+5/3+8/5+13/8…..前20项之和?
class Sum{
public static void main(Sting[] args){
double sum=0;
double fenZi=2.0, fenMu=1.0;
for(int i=1; i<=20; i++){
sum += fenZi / fenMu ;
fenMu = fenZi;
fenZi += fenMu;
}
System.out.println(“sum= “sum);
}
}
2、利用程序输出如下图形:
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
class Asterisk{
public static void main(String[] args){
for (int i=1; i<=13; i+=2){
for(int j=1; j<=i && i+j<= 14; j++){System.out.print(“* “);}
System.out.println();
}
}
}
3、计算圆周率
PI=4-4/3+4/5-4/7…….
打印出第一个大于 3.1415小于 3.1416的值
class Pi {
public static void main(String[] args){
double pi =0;
double fenZi = 4;
double fenMu = 1;
for (int i = 0; i < 1000000000; i++){ //运行老久,减少循环次数会快很多,只是精确度小些
pi += (fenZi/fenMu) ;
fenZi *= -1.0;
fenMu += 2.0;
}
System.out.println(pi);
}
}
输出结果为pi = 3.1415926525880504,应该不精确
4、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值
1
规律:一个数等于前两个数之和
//计算斐波那契数列(Fibonacci)的第n个值
public class Fibonacci{
public static void main(String args[]){
int n = Integer.parseInt(args[0]);
int n1 = 1;//第一个数
int n2 = 1;//第二个数
int sum = 0;//和
if(n<=0){
System.out.println(“参数错误!”);
return;
}
if(n<=2){
sum = 1;
}else{
for(int i=3;i<=n;i++){
sum = n1+n2;
n1 = n2;
n2 = sum;
}
}
System.out.println(sum);
}
}
//计算斐波那契数列(Fibonacci)的第n个值
//并把整个数列打印出来
public class FibonacciPrint{
public static void main(String args[]){
int n = Integer.parseInt(args[0]);
FibonacciPrint t = new FibonacciPrint();
for(int i=1;i<=n;i++){
t.print(i);
}
}
public void print(int n){
int n1 = 1;//第一个数
int n2 = 1;//第二个数
int sum = 0;//和
if(n<=0){
System.out.println(“参数错误!”);
return;
}
if(n<=2){
sum = 1;
}else{
for(int i=3;i<=n;i++){
sum = n1+n2;
n1 = n2;
n2 = sum;
}
}
System.out.println(sum);
}
}
5、求1-1/3+1/5-1/7+1/9……的值。
a,求出前50项和值。
b,求出最后一项绝对值小于1e-5的和值。
6、在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下:
*
***
*****
*******
*********
//打印金字塔图案
public class PrintStar{
public static void main(String args[]){
int col = Integer.parseInt(args[0]);
for(int i=1;i<=col;i++){//i表示行数
//打印空格
for(int k=0;k
System.out.print(” “);
}
//打印星星
for(int m=0;m<2*i-1;m++){
System.out.print(“*”);
}
System.out.println();
}
}
}
7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和
打印出所有的可能
//任何一个大于六的偶数可以拆分成两个质数的和
//打印出所有的可能
public class Gedebahe{
public static void main(String args[]){
int num = Integer.parseInt(args[0]);
if(num<=6){
System.out.println(“参数错误!”);
return;
}
if(num%2!=0){
System.out.println(“参数错误!”);
return;
}
Gedebahe g = new Gedebahe();
//1不是质数,2是偶数,因此从3开始循环
for(int i=3;i<=num/2;i++){
if(i%2==0){//如果为偶数,退出本次循环
continue;
}
//当i与num-i都为质数时,满足条件,打印
if(g.isPrime(i) && g.isPrime(num-i)){
System.out.println(i+” + “+(num-i)+” = “+num);
}
}
}
同类其他面试题 点击新一篇或旧一篇可浏览全部同类面试题
共有7 条 关于 “Java编程题,都是比较经典的面试题”的评论
-
1小肉包:
第一个程序编写的有问题,是错的
-
2小肉包:
2.0/1.0+4.0/2.0+8.0/4.0+16.0/8.0。。。这是你的输出,你的分母的赋值不对哦!~~应该是
public static void main(String args[]) {
double sum=0.0;
double fenzi=2.0;
double fenmu=1.0;
for(int i=1;i<=20;i++){sum+=fenzi/fenmu;
System.out.print(fenzi +"/"+fenmu+"+");
double tmp=fenzi;
fenzi=fenzi+fenmu;
fenmu=tmp;}
System.out.println("="+sum);}
-
3cc:
dasdas
-
4七夕:
public static void pi(){
double pi =4.0;
for(int i=1 ;;i++){
pi+=Math.pow(-1, i)*(4.0/(2*i+1));
if(pi>3.1415&&pi<3.1416){
System.out.println(pi);
break;
}
}
} -
5Anonymous:
第一道题写的有问题
for(int i=1; i<=20; i++){sum += fenZi / fenMu ;
a=fenMu
fenMu = fenZi; //下一项的分母 = 上一项的分子fenZi += a; //下一项的分子 = 上一项的分子加分母
}
-
6焦静:
第二道题目有问题
在for循环的第一句加上
if (pi > 3.1415 && pi < 3.14160)
break; -
7simple-zhaojl:
package com.mkyong.core.el;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class App {
public static void main(String[] args) {
// TODO Auto-generated method stub
//ApplicationContext context=new ClassPathXmlApplicationContext(“SpringBeans.xml”);
//CustomerC obj=(CustomerC)context.getBean(“customerC”);
// System.out.println(obj);
//System.out.println(getSum(3));
// getPI();
//fibonacci(9);
test();
}
public static double getSum(int n){
double a=1,b=2,sum=0;for(int i=1;i 3.1415 && sum<3.1416){
System.out.println(sum);
break;
}b+=2;
a++;}
}
public static void fibonacci(int n){
int a=1,b=1;
for(int i=3;i<=n;i++){
int temp;
temp=b;
b=a+b;
a=temp;
}
System.out.println(b);}
public static void test(){
double sum=1;double b=3;
int i=2;
while(true){
if(i%2==0){
sum-=1/b;
}else{
sum+=1/b;
}
if(Math.abs(1/b)<1e-5){
System.out.println("第"+i+"项,和值为:"+sum);
return;
}
b+=2;
i++;
}}
}