三个题目的答案

/**
 * 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("看输出就知道哥德巴赫猜想是对的 ");
 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值