您的位置:首页 > 编程语言 > Java开发

算法-java版算法竞赛入门解题代码-第2章习题

2013-03-28 13:01 295 查看
//2-1

public class Test1 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入一个数:");

long num = sc.nextLong();

System.out.println(" 位数:"+test1(num));

}

public static long test1(long num){

int count = 0;

while(num>0){

count++;

num= num/10;

}

return count;

}

//2-2

/**

* 水仙花 a*a*a+b*b*b+c*c*c

*

*/

public class Test2 {

public static void main(String[] args) {

test2();

}

public static void test2(){

for (int i = 100; i <= 999; i++) {

int a = i/100;

int b = (i/10)%10;

int c = i%10;

if(i==(a*a*a)+(b*b*b)+(c*c*c)){

System.out.println(i+"="+a+"*"+a+"*"+a+"+"+b+"*"+b+"*"+b+"+"+c+"*"+c+"*"+c);

}

}

}

}

//2-3 韩信点兵算法

public class Hanxin {

public static void main(String[] args) {

int a = 2;

int b = 1;

int c = 3;

/*int num = a*(5*7*2)+b*3*7+c*3*5-3*5*7;//方法1

while(num>105){

num = num-105;

}*/

for (; c%5!=b; c+=7);

for(;c%3!=a;c+=35);

System.out.println(c);

}

}

/**2-4 倒三角形

* #########

* #######

* #####

* ###

* #

*/

import java.util.Scanner;

public class Triangle {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入<=20的正整数:");

int n = sc.nextInt();

for (int i = 1; i <= n; i++) {

for (int j = 1; j<i; j++) {

System.out.print(" ");

}

for (int j = n; j>=i*2-1; j--) {

System.out.print("#");

}

System.out.println();

}

}

}

//2-6

public class Harmony {

public static void main(String[] args) {

int n = 5;

double sum =0;

for (int i = 1; i <= n; i++) {

sum= sum+(1.0/i);

}

System.out.println(sum);

}

//2-7

public class Approximation {

public static void main(String[] args) {

double num=1;

int i=1;

int fuhao=-1;

while(1.0/i>10.0/10/10/10/10/10/10){

i=i+2;

num += (1.0/i*fuhao);

fuhao= fuhao*-1;

}

System.out.println("PI/4="+Math.PI/4+" : num="+num);

}

/**

* 2-8

*/

public static void main(String[] args) {

long n=65536;

long m = 655360;

double num=0;

for (int i = 0; ((n+i)*(n+i))<=m*m; i++) {

num +=1.0/((n+i)*(n+i));

}

System.out.println(num);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: