/**
* 1. 使用面向对象的思想设计一个圆类,实现类的封装。
* 要求属性有圆心和半径,有获得面积和周长的方法。圆心
* 需要设计为Point(点)类,该类具有x,y(表示点的横、纵
* 坐标)两个属性,并定义两个构造方法,一个无参数,另一
* 个以坐标值为参数,设置x,y为给定坐标值。Point类的
* show方法输出该点的坐标值。
* @author Administrator
*/
package com.wangweijun.heima;
public class Point {
private float x;
private float y;
public Point(){}
public Point(float x, float y){
this.x = x;
this.y = y;
}
public void show(){
System.out.println("x=" + x + ",y=" + y);
}
}
package com.wangweijun.heima;
public class Circle {
static final float PI = 3.14159f;
private Point p;
private float r;
public float getArea(){
return PI*r*r;
}
public float getGirth(){
return 2*PI*r;
}
}
/**
* 2. 编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,
* 然后打印出这个十进制整数对应的二进制形式。这个程序要考虑输入的
* 字符串不能转换成一个十进制整数的情况,并对转换失败的原因要区分
* 出是数字太大,还是其中包含有非数字字符的情况。 提示:十进制数转
* 二进制数的方式是用这个数除以2,余数就是二进制数的最低位,接着再
* 用得到的商作为被除数去除以2,这次得到的余数就是次低位,如此循环
* ,直到被除数为0为止。其实,只要明白了打印出一个十进制数的每一位
* 的方式(不断除以10,得到的余数就分别是个位,十位,百位),就很容
* 易理解十进制数转二进制数的这种方式。
* int 范围 -2147483648 到 2147483647
*/
package com.wangweijun.heima;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class TransformTest {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String content = null;
try {
content = br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
int number = 0;
try {
number = Integer.parseInt(content);
} catch (NumberFormatException e) {
System.out.println("有非数字字符");
}
//将余数存于数组列表中
List<Integer> residues = new ArrayList<Integer>();
//余数
int residue = 0;
do{
residue = number % 2;
residues.add(residue);
number = number /2;
}while(number != 0);
StringBuffer str = new StringBuffer();
for(int i=residues.size()-1; i>=0 ; i--){
str.append(residues.get(i));
}
System.out.println(str);
}
}
/**
*3. 验证1-100之內的数是否符合哥德巴赫猜想: 哥德巴赫猜想:
*所有大于2的偶数都是两个素数之和. 素数定义为:
* 一个数除了1和自己本身之外不被任何数整除.
*/
package com.wangweijun.heima;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class GdbhTest {
public static void main(String[] args) {
getPrimeNumber();
}
public static void getPrimeNumber() {
// 所有素数
List<Integer> primeNumbers = new ArrayList<Integer>();
primeNumbers.add(1);
for (int i = 2; i < 100; i++) {
int max = i / 2 + 1;
int j = 2;
for (j = 2; j < max; j++) {
if (i % j == 0) {
break;
}
}
if (j == max) {
primeNumbers.add(i);
}
}
// 由素数集合所能组成的数
Set<Integer> bothNumbers = new HashSet<Integer>();
System.out.println("1到100的所有素数");
for (int i = 0; i < primeNumbers.size(); i++) {
System.out.print(primeNumbers.get(i) + " ");
for (int j = 0; j < primeNumbers.size(); j++) {
int num = primeNumbers.get(i) + primeNumbers.get(j);
if (num > 100) {
break;
}
bothNumbers.add(num);
}
}
System.out.println();
System.out.println("1到100的所有素数所能组成的数");
Iterator<Integer> iterator = bothNumbers.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
System.out.println();
System.out.println("看输出就知道哥德巴赫猜想是对的 ");
}
}