求几个JAVA的程序编写
2.求Fib级数所有前59项 (1).计算所求级数的平均值。 (2).挑出所有偶数并显示出来
3.从键盘输入一个字符串,然后进行加密,并显示加密前后的字符串。 加密方法: 字母表替换法,即按照下面表列出的替换字符,替换字符串中对应的字符。
明文:a、b、c……z,A、B、C……Z
密文:A、B、C、……Z,a、b、c……z
4、编写Java程序实现一个堆栈,并提供数据入栈和出栈方法。
要求尽量简单,速度
追问:弄错了,第三题密文的顺序是相反的,也就是Z、Y、X……C、B、A和z、y、x……c、b、a怎么改???
答案:第2题,注意 用long ,因为数列的后几项超出了int的范围,溢出。
只有2次循环,效率高。
public class FibNumberSecquence {
public static void main(String args[])
{
long [] fib = new long[59];
boolean [] flag = new boolean[59];
long sum ;
fib[0]=1;
fib[1]=1;
sum = fib[0]+fib[1];
for (int i = 2; i < fib.length; i++) {
fib[i] = fib[i-1]+fib[i-2];
sum+=fib[i];
if (fib[i]%2==0) {
flag[i] = true;
}
else
flag[i] = false;
}
double avg = sum/59;
System.out.println("平均值:"+avg);
System.out.println("偶数:");
for (int i = 2; i < flag.length; i++) {
if (flag[i]) {
System.out.println(fib[i]);
}
}
}
}
第3题:
不需知道'z'和'Z'的ASCI码差值是32,一样可以
import java.util.Scanner;
public class RepleaceCode {
public static void main(String args[])
{
System.out.println("输入原始字符串:");
Scanner stdin = new Scanner(System.in);
String str = stdin.nextLine();
char [] result = new char[str.length()];
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c<='z'&&c>='a') {
c += ('Z'-'z');
}
else if (c<='Z'&&c>='A')
{
c += 'z'-'Z';
}
else
{}
result[i]=c;
}
String resString = new String(result);
System.out.println("加密后字符串:");
System.out.println(resString);
}
}
第4题,用数组实现了一个int栈,比较简单。
使用纯数组实现,效率不list等对象容器高效,而且通过具体栈顶指针的操作,让你更了解栈。
要用其它类型的栈,直接把int数组换成其它类型的数组就可以。
public class MyStack {
private int[] data ;// 栈内数据
private int top; // 栈顶指针
private int addtionsize = 20;
public MyStack() {
top = 0;
data = new int[100];
System.out.println("初始化,栈顶指向:"+top);
}
public void push(int newValue)
{
if (top==data.length) {
int [] temp = new int[data.length+addtionsize];
for (int i = 0; i < data.length; i++) {
temp[i] = data[i];
}
data = temp;
}
data[top] = newValue;
top++;
System.out.println("添加元素,栈顶指向:"+top);
}
public int pop()
{
if (top>0) {
top--;
System.out.println("删除元素,栈顶指向:"+top);
return data[top];
}
else
{
throw new StackOverflowError();
}
}
public static void main(String args[])
{
MyStack stack = new MyStack();
for (int i = 0; i < 120; i++) {
stack.push(i);
}
for (int i = 0; i < 10; i++) {
int value = stack.pop();
System.out.println(value);
}
}
}
其他:2题:
import java.io.*;
import java.util.*;
public class exp2_1
{
public static void main(String []args)
{
long[] fib = new long[59];
fib[0] = 1;
fib[1] = 1;
long total = fib[0] + fib[1];
for(int i = 2; i < 59; i++)
{
fib[i] = fib[i - 1] + fib[i - 2];
total += fib[i];
}
System.out.println("平均数是" + total / 59);
long[] evenNum = new long[59];
int j = 0;
for(int i = 0; i < 59; i++)
{
if(fib[i] % 2 == 0)
{
evenNum[j] = fib[i];
j++;
}
}
System.out.print("偶数有:");
for(int i = 0; i < evenNum.length; i++)
{
System.out.print(evenNum[i] + " ");
}
}
}
3题:
import java.io.*;
import java.util.*;
public class exp2_1
{
public static void main(String []args)
{
try
{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String str;
str = br.readLine();
char[] ch = str.toCharArray();
for(int i = 0; i < str.length(); i++)
{
if(ch[i] >= 'a' && ch[i] <= 'z')
{
ch[i] -= 32;
}
else if(ch[i] >= 'A' && ch[i] <= 'Z')
{
ch[i] += 32;
}
}
for(int i = 0; i < ch.length; i++)
{
System.out.print(ch[i]);
}
}
catch(IOException ie)
{
System.out.print(ie);
}
}
}
4题:我的这个栈可以支持各种数据类型,而楼上那位只能支持INT型
import java.util.*;
public class MyStack
{
private LinkedList ll = new LinkedList();
public Object pop()
{
return ll.removeLast();
}
public void push(Object obj)
{
ll.addLast(obj);
}
public Object peek()
{
return ll.getLast();
}
public boolean empty()
{
return ll.isEmpty();
}
public int size()
{
return ll.size();
}
}
class MyStackTest
{
public static void main(String[] args)
{
MyStack ms = new MyStack();
ms.push("one");
ms.push("two");
ms.push("three");
int index = 0;
System.out.println(++index + " : " + ms.pop());
System.out.println(++index + " : " + ms.peek());
System.out.println(++index + " : " + ms.size());
System.out.println(++index + " : " + ms.pop());
System.out.println(++index + " : " + ms.pop());
System.out.println(++index + " : " + ms.empty());
}
}
上一个:"C:\Java\jre6\bin\javaw.exe" -jar "%1" 这是什么意思怎么弄?
下一个:java中title正则表达式,这个错在哪里在,怎么用正则表达式提取弹性体文档中<title></title>之间的文字