1
import java.util.Scanner;
public class Main{
public static void main(String[] args){
final int NUMBER = 100;
int count = 0;
Scanner input = new Scanner(System.in);
while(count < NUMBER){
System.out.print(getPentagonalNumber(count+1) + " ");
if((count+1) % 10 == 0)
System.out.println();
++count;
}
}
public static int getPentagonalNumber(int n){
return n*(3*n-1)/2;
}
}
2
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
System.out.println(sumDigits(n));
}
public static int sumDigits(int n){
int sum = 0;
while(n != 0){
sum += n % 10;
n = n / 10;
}
return sum;
}
}
3
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int num = input.nextInt();
if(isPalindrome(num))
System.out.println(num + " is palindrome.");
else
System.out.println(num + " is not palindrome.");
}
public static int reverse(int number){
int num = 0;
while(number != 0){
num = num*10 + number%10;
number /= 10;
}
return num;
}
public static boolean isPalindrome(int number){
if(number == reverse(number))
return true;
return false;
}
}
4
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int num = input.nextInt();
System.out.println(reverse(num));
}
public static int reverse(int number){
int num = 0;
while(number != 0){
num = num*10 + number%10;
number /= 10;
}
return num;
}
}
5
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
double num1 = input.nextDouble();
double num2 = input.nextDouble();
double num3 = input.nextDouble();
displaySortedNumber(num1,num2,num3);
}
public static void displaySortedNumber(double num1, double num2, double num3){
double temp = 0;
if(num1 > num2){
temp = num1;
num1 = num2;
num2 = temp;
}
if(num1 > num3){
temp = num1;
num1 = num3;
num3 = temp;
}
if(num2 > num3){
temp = num2;
num2 = num3;
num3 = temp;
}
System.out.println(num1 + " " + num2 + " " + num3);
}
}
6
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int num = input.nextInt();
displayPattern(num);
}
public static void displayPattern(int n){
for(int i = 1; i <= n; ++i){
for(int j = 1; j <= n-i; ++j)
System.out.print(" ");
for(int j = i; j > 0; --j)
System.out.print(j);
System.out.println();
}
}
}
7,8,9
套公式
10
import java.util.Scanner;
public class Main{
public static void main(String[] args){
int count = 0;
for(int i = 1; i <= 10000; ++i){
if(isPrime(i))
++count;
}
System.out.println(count);
}
public static boolean isPrime(int n){
if(n == 1)
return false;
for(int i = 2; i*i <= n; ++i){
if(n%i == 0)
return false;
}
return true;
}
}
11
。。。。
12
import java.util.Scanner;
public class Main{
public static void main(String[] args){
printChars('1','Z',10);
}
public static void printChars(char ch1, char ch2, int numberPerLine){
int count = 0;
for(int i = ch1; i <= ch2; ++i){
System.out.print((char)i);
++count;
if(count%10 == 0)
System.out.println();
}
}
}
13
import java.util.Scanner;
public class Main{
public static void main(String[] args){
for(int i = 1; i <= 20; ++i){
System.out.println(i + " " + m(i));
}
}
public static double m(int n){
double sum = 0.0;
for(int i = 1; i <= n; ++i)
sum += (double)i/(double)(i+1);
return sum;
}
}
14
import java.util.Scanner;
public class Main{
public static void main(String[] args){
for(int i = 1; i <= 901; i += 100){
System.out.println(i + " " + m(i));
}
}
public static double m(int n){
double sum = 0.0;
int one = 1;
for(int i = 1; i <= n; ++i){
sum += one/(double)(2*i-1);
one = -one;
}
return 4*sum;
}
}
15,16
。。。。。。。
17
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n = input.nextInt();
printMatrix(n);
}
public static void printMatrix(int n){
for(int i = 0; i < n; ++i){
for(int j = 0; j < n; ++j){
System.out.print((System.currentTimeMillis()/(j+i+1))%2 + " ");
}
System.out.println();
}
}
}
18
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter password:");
String password = input.next();
if(isValidPassWord(password)){
System.out.println("Valid Password");
}
else
System.out.println("Invalid Password");
}
public static boolean isValidPassWord(String str){
if(str.length() < 8)
return false;
int count = 0;
for(int i = 0; i < str.length(); ++i){
if(!Character.isDigit(str.charAt(i)) && !Character.isLetter(str.charAt(i)))
return false;
if(Character.isDigit(str.charAt(i)))
++count;
}
if(count < 2)
return false;
return true;
}
}
19,20,21
。。。。。。
22
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
double n = input.nextDouble();
System.out.println(sqrt(n));
}
public static double sqrt(double n){
double nextGuess = 0;
double lastGuess = 1.0;
while(true){
nextGuess = (lastGuess + n/lastGuess) / 2;
if(Math.abs(nextGuess - lastGuess) < 0.0001)
return nextGuess;
lastGuess = nextGuess;
}
}
}
23
。。。。。
24
参考第五章29题
25
貌似和程序清单2-7差不多
26
import java.util.Scanner;
public class Main{
public static void main(String[] args){
int count = 0;
int i = 1;
while(count < 100){
if(isPrime(i) && isPalindrome(i)){
System.out.print(i + " ");
++count;
if(count % 10 == 0)
System.out.println();
}
++i;
}
}
public static boolean isPalindrome(int number){
if(number == reverse(number))
return true;
return false;
}
public static int reverse(int number){
int num = 0;
while(number != 0){
num = num*10 + number%10;
number /= 10;
}
return num;
}
public static boolean isPrime(int n){
if(n == 1)
return false;
for(int i = 2; i*i <= n; ++i){
if(n%i == 0)
return false;
}
return true;
}
}
27
import java.util.Scanner;
public class Main{
public static void main(String[] args){
int count = 0;
int i = 1;
while(count < 100){
if(isPrime(i) && isPrime(reverse(i))){
System.out.print(i + " ");
++count;
if(count % 10 == 0)
System.out.println();
}
++i;
}
}
public static int reverse(int number){
int num = 0;
while(number != 0){
num = num*10 + number%10;
number /= 10;
}
return num;
}
public static boolean isPrime(int n){
if(n == 1)
return false;
for(int i = 2; i*i <= n; ++i){
if(n%i == 0)
return false;
}
return true;
}
}
28
import java.util.Scanner;
public class Main{
public static void main(String[] args){
for(int p = 1; p <= 31; ++p){
int n = (int)Math.pow(2, p)-1;
if(isPrime(n))
System.out.println(p + " " + n);
}
}
public static boolean isPrime(int n){
if(n == 1)
return false;
for(int i = 2; i*i <= n; ++i){
if(n%i == 0)
return false;
}
return true;
}
}
29
import java.util.Scanner;
public class Main{
public static void main(String[] args){
int record = 2;
for(int i = 3; i <= 1000; ++i){
if(isPrime(i)){
if(i - record == 2){
System.out.println("(" + record + ", " + i + ")");
record = i;
}
else if(i - record < 2 && !isPrime(i+1))
record = i;
else if(i - record > 2)
record = i;
}
}
}
public static boolean isPrime(int n){
if(n == 1)
return false;
for(int i = 2; i*i <= n; ++i){
if(n%i == 0)
return false;
}
return true;
}
}
30
。。。。。。
31
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
long num = cin.nextLong();
int size = getSize(num);
boolean flag = false;
if(prefixMatched(num,4) || prefixMatched(num,5) || prefixMatched(num,37) || prefixMatched(num,6))
flag = true;
if(size >= 13 && size <= 16 && flag && isValid(num)){
System.out.println(num + " is valid");
}
else{
System.out.println(num + " is invalid");
}
}
public static boolean isValid(long number){
int sum1 = sumOfDoubleEvenPlace(number);
int sum2 = sumOfOddPlace(number);
int sum = sum1+sum2;
if(sum%10 == 0) return true;
else return false;
}
public static int sumOfDoubleEvenPlace(long number){
int len = 0;
int sum = 0;
int[] numarr = new int[20];
int index = 0;
while(number != 0){
numarr[index++] = (int)(number%10);
number /= 10;
}
for(int i = index-1; i >= 0; --i){
++len;
if(len%2 == 1){
sum += getDigit(numarr[i]*2);
}
}
return sum;
}
public static int getDigit(int number){
if(number < 10)
return number;
return (number%10 + number/10);
}
public static int sumOfOddPlace(long number){
int len = 0;
int sum = 0;
int[] numarr = new int[20];
int index = 0;
while(number != 0){
numarr[index++] = (int)(number%10);
number /= 10;
}
for(int i = index-1; i >= 0; --i){
++len;
if(len%2 == 0){
sum += numarr[i];
}
}
return sum;
}
public static boolean prefixMatched(long number, int d){
String str = String.valueOf(number);
String substr = String.valueOf(d);
if(str.startsWith(substr))
return true;
return false;
}
public static int getSize(long d){
int len = 0;
while(d != 0){
d /= 10;
++len;
}
return len;
}
//感觉题目用不到这个方法啊
public static long getPrefix(long number, int k){
return 0;
}
}
待续。。。。。