黑马程序员技术交流社区
标题: 几个关于数的经典小程序 [打印本页]
作者: 刘建龙 时间: 2012-6-18 21:24
标题: 几个关于数的经典小程序
本帖最后由 刘建龙 于 2012-6-20 14:10 编辑
素数问题:
判断101-200之间有多少个素数,并输出所有素数。
分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
public class lianxi02 {
public static void main(String[] args) {
int count = 0;
for(int i=101; i<200; i+=2) {
boolean b = false;
for(int j=2; j<=Math.sqrt(i); j++)
{
if(i % j == 0) { b = false; break; }
else { b = true; }
}
if(b == true) {count ++;System.out.println(i );}
}
System.out.println( "素数个数是: " + count);
}
}
水仙花数问题:
打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
public class lianxi03 {
public static void main(String[] args) {
int b1, b2, b3;
for(int m=101; m<1000; m++) {
b3 = m / 100;
b2 = m % 100 / 10;
b1 = m % 10;
if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) {
System.out.println(m+"是一个水仙花数"); }
}
}
}
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
import java.util.*;
public class lianxi04{
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print( "请键入一个正整数: ");
int n = s.nextInt();
int k=2;
System.out.print(n + "=" );
while(k <= n) {
if(k == n) {System.out.println(n);break;}
else if( n % k == 0) {System.out.print(k + "*");n = n / k; }
else k++;
}
}
}
指数问题
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
import java.util.Scanner;
public class lianxi04{
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print( "请键入一个正整数: ");
int n = s.nextInt();
int k=2;
System.out.print(n + "=" );
while(k <= n) {
if(k == n) {System.out.println(n);break;}
else if( n % k == 0) {System.out.print(k + "*");n = n / k; }
else k++;
}
}
}
另外求助:一般的编程格式,与注意事项,知道的同志讨论下!
作者: 金鑫 时间: 2012-6-18 21:32
一、 Java命名的一般规范
1. 类名首字母应该大写。属性(成员变量)、方法、对象变量以及所有标识符(如形式参数、实际参数、局部变量)的首字母应小写,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。
例如:类名:ThisIsAClassName 属性或方法名:thisIsMethodOrFieldName 对象变量:thisIsAClassVariable
2. Java 包(Package)属于一种特殊情况,它们全都是小写字母,即便中间的单词亦是如此。对于全局包,将你的 Internet 域名反转并接上包名。
例如:cn.edu.usst.dingyuewei.package
另外,package 行要在import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。
例如:
package hotlava.net.stats;
import java.io.*;
import java.util.Observable;
import hotlava.util.Application;
这里 java.io.* 是用来代替InputStream and OutputStream 的。
3. 接口(Interface):采用完整的英文描述符说明接口封装,所有单词的第一个字母大写。习惯上,名字后面加上后缀 able,ible 或者 er。
例如:Contactable,Prompter。
4. 组件(Component)使用完整的英文描述来说明组件的用途,末端应接上组件类型。例如:okButton,customerList,fileMenu。
5. 类中常用方法的命名:
(1). 类的获取方法(一般具有返回值)一般要求被方法名使用被访问字段名,前面加上前缀get,如: getFirstName(), getLastName()。
(2). 类的布尔型的判断方法一般要求方法名使用单词 is 做前缀,如: isPersistent(),isString()。或者使用具有逻辑意义的单词,例如: equal 或: equals
(3). 类的设置方法(一般返回类型为void):被访问字段名的前面加上前缀 set,如: setFirstName(),setLastName(),setWarpSpeed()。
(4). 类的普通方法一般采用完整的英文描述说明成员方法功能,第一个单词尽可能采用一个生动的动词,第一个字母小写,如; openFile(), addAccount()。
(5). 构造方法应该用递增的方式写(比如:参数多的写在后面)。
例如:
public CounterSet(){}
public CounterSet(int size){ this.size = size;}
(6). toString 方法:一般情况下,每一个类都应该定义toString 方法,其格式为:
public String toString() {…}
(7). 一般应考虑置入一个main()方法,其中包含用于测试那个类的代码,如果包含了main() 方法, 那么它应该写在类的底部。
6. 静态常量字段(static final)一般全部采用大写字母,单词之间用下划线分隔(也有特例,如Java 类库中关于颜色的常数没有严格地全部使用大写字母)。如MIN_BALANCE,
DEFAULT_DATE。
7. 循环计数变量通常采用字母 i,j,k 或者 counter。而数组应该总是用下面的方式来命名:objectType[] 或 byte[] buffer。
二、 Java注释
1. 类的整体注释:遵循JavaDoc的规范,在每一个源文件的开头注明该CLASS的作用, 作简要说明, 并写上源文件的作者, 编写日期。如果是修改别人编写的源文件,要在修改
信息上注明修改者和修改日期。
例如:
/**
* @(#):CLASSNAME.java
* @description: Description of this java
* @author: PROGRAMMER'S NAME YYYY/MM/DD
* @version: Version No.
* @modify:
* @Copyright: 版权由拥有
*/
2. 类中方法的注释:遵循JavaDoc的规范,在每个方法的前部用块注释的方法描述此方法的作用,以及传入,传出参数的类型和作用,以及需要捕获的错误。
例如:
/**
* 方法的描述
*
*
*@param 参数的描述
*@return 返回类型的描述
*@exception 出错信息的描述
*/
3. 行注释:使用//…的注释方法来注释需要表明的内容。并且把注释的内容放在需要注释的代码的前面一行或同一行。
4. 块注释:使用/**和*/注释的方法来注释需要表明的内容。并且把注释的内容放在需要注释的代码的前面。
5. 注释哪些部分:类的目的(即类所完成的功能)、设置接口的目的以及应如何被使用、成员方法注释(对于设置与获取成员方法,在成员变量已有说明的情况下,可以不加注释;普通成员方法要求说明完成什么功能,参数含义是什么?返回什么?)、普通成员方法内部注释(控制结构、代码做了些什么以及为什么这样做,处理顺序等)、实参和形参的含义以及其他任何约束或前提条件、字段或属性描述。而对于局部变量,如无特别意义的情况下不加注释。
作者: 刘建龙 时间: 2012-6-19 22:20
金鑫 发表于 2012-6-18 21:32
一、 Java命名的一般规范
1. 类名首字母应该大写。属性(成员变量)、方法、对象变量以及所有标识符(如形 ...
谢谢啊,呵呵!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |