JAVA编程的几个简单题目

(1)编程验证对任意一个大于1的自然数,对其进行一系列的变换,法则如下:若这个自然数N不是素数,则把它分解成素因子的连积乘,然后将这些因子相加,并在其和数上再加1,记其结... (1)编程验证
对任意一个大于1的自然数,对其进行一系列的变换,法则如下:若这个自然数N不是素数,则把它分解成素因子的连积乘,然后将这些因子相加,并在其和数上再加1,记其结果为N1,如果N已经是素数,则把它加1作为N1.得N1之后再以此类推,得到N2。。。。必然得到一下结论之一:
对于<=6的自然数,最后收敛必为6;
或者对于 >=7的自然数,最后收敛必为7和8的交替。

(2)从键盘输入两个数,然后计算他们的相除,当输入的不是整数或第2个数为0或它们相除的结果小于1时,均抛出异常,并捕获异常进行处理。

(3)编程统计一篇文章中使用最频繁的10个单词

(4) 请编写程式输出如下格式的结果,其中一第行的值是上一行的1/2:
.5
.25
.125
.0625
.03125
………
要求行数能用键盘输入

(5) 使用Vector类统计一篇文章中所有单词数量。

(6)一个正整数有可能可以被表示为n(n>=2)个连续正整数之和,如
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序根据输入的任何一个正整数,找出符合这种要求的连续正整数序列。

高手帮帮忙吧...能把源代码写出来就写 不能写的就告诉个方法....
最好写个题号...
谢谢各位细心的大侠了!
哈哈...是啊

催着交作业呢...

我没的时间...最近作业太多了
展开
 我来答
wubenhua2008
2008-12-04 · TA获得超过934个赞
知道小有建树答主
回答量:455
采纳率:0%
帮助的人:495万
展开全部
第一个:
import java.util.Scanner;
import java.util.*;
public class Validate
{
private int n;
/*count_6、count_7、count_8 用来记录收敛那个数字的个数,在这里我记录只要他出现了10次我就认为他收敛与他了
* 还没想到更好的办法,如果不设置这个,就会出现栈溢出,递归不出来了!不过可以看到结果输出结果确实是对的
*/
private int count_6;
private int count_7;
private int count_8;
private Stack<Integer> stack= new Stack<Integer>();//栈用来存放素因子
public void scan()
{
Scanner scan = new Scanner(System.in);
try{
n = scan.nextInt();
}catch(NumberFormatException ne){
System.out.println(ne.getMessage());
}
}

public boolean isPrime(int n)
{
if(n>2 && 0 == n%2)//是大于2偶数
{
return false;

}else{

for(int i=3; i<n; i +=2)
{
if(0 == n%i)
return false;
}
return true;
}
}

public void analyze(int n)
{
if(isPrime(n))
{
stack.push(n);
return;
}
if(0 == n%2){
stack.push(2);
n = n/2;
analyze(n);
}else{

for(int i=3; i<n; i +=2)
{
if(isPrime(i)&& 0 == n%i)
{
stack.push(i);
n = n/i;
analyze(n);
}
}

}
}

public void mySort()
{
check(n);
}
public void check(int m)
{
if(isPrime(m)){
m++;
}
else{
analyze(m);
m = 0;
while(!stack.empty())
{
int k = stack.pop().intValue();
m += k;
}
stack.clear();
m++;
}
if(m == 6 || m == 7 || m == 8)
{
if(6 == m)
{
count_6++;
System.out.println("m = " + m);
}else if(7 == m){
count_7++;
System.out.println("m = " + m);
}else if(8 == m){
count_8++;
System.out.println("m = " + m);
}
}
if(count_6 > 10 || count_7 > 10 || count_8 > 10)
{
return;
}
check(m);
}

public static void main(String[] args)
{
Validate v = new Validate();
v.scan();
v.mySort();
}
}

第二个:
import java.util.Scanner;

class MyException extends Exception
{
public MyException(String msg)
{
super(msg);
}
}

public class MyExceptionTest {

public int scan()
{
int a = 0;
Scanner scan = new Scanner(System.in);
try{
a = scan.nextInt();
}catch(NumberFormatException ne){
System.out.println(ne.getMessage());
}
return a;
}

public int cal(int a, int b) throws MyException
{
if(b==0) throw new MyException("自定义异常: 输入的第二个数为0");
else if(a/b<1) throw new MyException("自定义异常: 相除的结果小于1");
else return a/b;

}
public static void main(String[] args) {

MyExceptionTest me = new MyExceptionTest();
System.out.print("请输入第一个数:");
int a = me.scan();
System.out.print("请输入第二个数:");
int b = me.scan();
try{
System.out.println("相除的结果:" + me.cal(a, b));
}catch(MyException e){
System.out.println(e.getMessage());
}
}

}

第三个:
import java.util.*;
import java.util.Map.Entry;

public class CountCharacter {

private static Map<String, Integer> map = new LinkedHashMap<String, Integer>();

private static final int ONE = 1 ; //没有出现过,则设置其出现一次;

private String content = null;

public void scan()
{
Scanner scan = new Scanner(System.in);
content = scan.nextLine();
}

public void count()
{
String [] text = content.split(" ");
for(int i=0; i<text.length; i++)
{
if (!map.containsKey(text[i])) {
map.put(text[i], ONE);
} else {
int value = map.get(text[i]);
map.put(text[i], value + 1);
}
}
}
public <K, V extends Number> Map<String, V> sortMap(Map<String, V> map) {
class MyMap<M, N> {
private M key;
private N value;
private M getKey() {
return key;
}
private void setKey(M key) {
this.key = key;
}
private N getValue() {
return value;
}
private void setValue(N value) {
this.value = value;
}
}

List<MyMap<String, V>> list = new ArrayList<MyMap<String, V>>();
for (Iterator<String> i = map.keySet().iterator(); i.hasNext(); ) {
MyMap<String, V> my = new MyMap<String, V>();
String key = i.next();
my.setKey(key);
my.setValue(map.get(key));
list.add(my);
}

Collections.sort(list, new Comparator<MyMap<String, V>>() {
public int compare(MyMap<String, V> o1, MyMap<String, V> o2) {
if(o1.getValue().equals(o2.getValue())) {
return o1.getKey().compareTo(o2.getKey());
}else{
return (int)(o2.getValue().doubleValue() - o1.getValue().doubleValue());
}
}
});

Map<String, V> sortMap = new LinkedHashMap<String, V>();
for(int i = 0, k = list.size(); i < k; i++) {
MyMap<String, V> my = list.get(i);
sortMap.put(my.getKey(), my.getValue());
}
return sortMap;
}

public static void main(String[] args) {
CountCharacter cc = new CountCharacter();
cc.scan();
cc.count();
Map<String, Integer> sortMap = cc.sortMap(cc.map);

Iterator<Entry<String, Integer>> it = sortMap.entrySet().iterator();
Map.Entry<String,Integer> entry = null;
int i=0;
while(it.hasNext()&& i<10) {//去前面10个
i++;
entry = (Entry<String,Integer>) it.next();
System.out.println(entry.getKey() + " --> " + entry.getValue());
}
}

}

第四个:
import java.util.Scanner;
public class IntegerShape{
public static void main(String[] args){
double a = 0;
int b = 0;
Scanner in = null;
do{
try{
System.out.print("请输入一个的数:");
in=new Scanner(System.in);
a=in.nextFloat();
break;
}catch(Exception ne){
System.out.println("输入数据错误!");
}
}while(true);
do{
try{
System.out.print("请输入显示的行数:");
in=new Scanner(System.in);
b=in.nextInt();
break;
}catch(Exception ne){
System.out.println("输入数据错误!");
}
}while(true);
for(int i=b;i>0;i--)
{
System.out.println(a);
a=a/2;
}
}
}
第五个:
import java.util.Scanner;
import java.util.Vector;

public class MyVector {

private Vector<String> vectorStr = new Vector<String>(); //用来方单词
private Vector<Integer> vectorInt = new Vector<Integer>();//用来记录对应下标的单词的个数
private static final int ONE = 1 ; //没有出现过,则设置其出现一次;

private String content = null;

public void scan()
{
Scanner scan = new Scanner(System.in);
content = scan.nextLine();
}

public void countWord()
{
int index = -1;
String [] text = content.split(" ");
for(int i=0; i<text.length; i++)
{
if(vectorStr.contains(text[i])){ //若次单词已经存在与vector中则只要修改对应的个数
index = vectorStr.indexOf(text[i]);
int value = vectorInt.get(index)+1;
vectorInt.setElementAt(value, index);
}
else{//若不存在则添加该单词,同时要初始化对应下标的单词的个数
vectorStr.add(text[i]);
vectorInt.add(ONE);
}
}
System.out.println(vectorStr);
}

public void display()
{
for(int i=0; i<vectorStr.size(); i++)
{
System.out.println(vectorStr.get(i) + "->" + vectorInt.get(i));
}
}
public static void main(String[] args) {

MyVector mv = new MyVector();
mv.scan();
mv.countWord();
mv.display();
}
}

最后一个了不容易!考虑加点分吧!

import java.util.*;
public class Exp {

private int integer;
private boolean bool = false;
private Stack<Integer> stack = new Stack<Integer>();

public void scan()
{
System.out.print("输入一个整数:");
Scanner scan = new Scanner(System.in);
while(true){
try{
integer = scan.nextInt();
break;
}catch(Exception e){
System.out.println("输入错误!");
}
}
}

public void operation()
{

for(int i=1; i<integer; i++)
{
int sum = 0;
for(int j = i; j<=integer; j++)
{
stack.push(j);
sum += j;
if(sum == integer)
{
int k = 0, n = stack.size();
bool = true;
System.out.print(integer + " = ");
while(!stack.empty())
{
k++;
if(k<n)
{
System.out.print(stack.pop().intValue() + " + ");
}
else
{
System.out.print(stack.pop().intValue() + "\n");
}
}
stack.clear();
}else if(sum > integer){
stack.clear();
}
}
}
if(!bool)
System.out.println("该整数没有连续正整数序列!");
}
public static void main(String[] args) {
Exp e = new Exp();
e.scan();
e.operation();
}

}

以上运行过了可以!
风度尤佳
2008-12-04 · TA获得超过119个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:142万
展开全部
(4)测试过
int a=5;
int line=5;
for(int j=1;j<line+1;j++)
{
System.out.println("."+a);
a*=5;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
danceneboy
2008-12-04 · TA获得超过285个赞
知道答主
回答量:70
采纳率:0%
帮助的人:58.6万
展开全部
本来不想帮你些的,学习靠自己嘛
但是看到上面哪位。。题目要求都没看清楚。哎。
第四题:
import java.util.Scanner;
public class test{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.print("请输入你想求的整数:");
double a=in.nextInt();
System.out.print("请输入你想得到的行数:");
int b=in.nextInt(); //接受你所需要的行数
for(int i=b;i>0;i--)
{
System.out.println(a);
a=a/2;

}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sumingxu
2008-12-04 · 超过42用户采纳过TA的回答
知道答主
回答量:247
采纳率:0%
帮助的人:149万
展开全部
3楼说的对
现在就业压力大
还不好好会点东西
以后很麻烦的
这些都是最基础的东西
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
myerpso
2008-12-04 · TA获得超过1278个赞
知道小有建树答主
回答量:982
采纳率:0%
帮助的人:502万
展开全部
自己好好写写,不然大四找工作的时候你会后悔的,希望你到时候别记得我这句话。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龙之冰点
2008-12-04 · TA获得超过131个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:188万
展开全部
java全忘了, wubenhua2008答得好啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式