import java.util.Scanner;
/**
* 1、计算3、6、9的阶乘并输出结果。
*
*/
public class Factorial {
public int getFact(int n){//阶乘的数
int m = 1;
for(int i = 1; i <= n; i++){//从1开始计算到n,也就是1*2*3...*n
m = m*i;
}
return m;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要计算的阶乘数:");
int n = sc.nextInt();
System.out.println(new Factorial().getFact(n));
}
}
===================================
import java.util.Scanner;
/**
* 2、编写一个应用程序,求Fibonacci数列的前十个数。(Fibonacci数列的定义为:F1=F2=1,当n>=3时,Fn=Fn-1+Fn-2)
* 这个你可以再控制台输入前几个数,但是项数要少,否则运算慢
*/
public class Fei {
public int func(int n){
if(n==1){
return 1;
}else if(n>1){ //如果n不为1,那么就继续调用该方法递归 1,1,2,3,5...
return func(n-1)+func(n-2);
}else if(n<0){
System.out.println("输入数字不符合要求");
return -1;
}
return 0;
}
public static void main(String []args){
Fei f=new Fei();
Scanner input=new Scanner(System.in);
System.out.print("项数n最好在(0
System.out.println("第"+num+"项数为:"+f.func(num));
}
}
===========================================
import java.util.Scanner;
/**
* 从命令行中接收两个姓名字符串,按照“hello 姓名2 and 姓名1”的格式输出。
* 若输入的是“<命令> Jerry Tom”则输出的是“hello Tom and Jerry”。
*/
public class Print {
public void getFormat(String format){
String formatArr[] = format.split(" "); //按空格将该字符串分成String数组
System.out.print("hello " + formatArr[0]);//打印第一个
for(int i = 1; i < formatArr.length; i++){//循环打印
System.out.print(" and " + formatArr[i]);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要的姓名的个数:");
int num = sc.nextInt();
StringBuilder builder = new StringBuilder();//定义一个可变字符串对象
for(int i = 1; i <= num; i++){
System.out.println("请输入第"+i+"个人的姓名:");
String format = sc.next();
builder.append(format).append(" ");//每次接收一个字符串就拼上空格加进去
}
new Print().getFormat(builder.toString());//将可变字符串变为String类型
}
}
=========================================
六、简答题
JAVA中的参数传递全是以值传递的
public class s {
public static void main (String [] args) {
String aa = new String ("aa");
String bb = new String ("bb");
operate (aa,bb);
System.out.println(bb);
String cc = new String("cc");
String dd = new String("dd");
dd = cc;
System.out.println(dd);
}
static void operate(String x, String y){ //问题就是判断这传递的是什么
y = x;
}
//打印结果
//bb
//cc
//这样就能看明白了,首先看dd = cc; 将dd的引用指向了cc的对象在堆中的位置
//如果参数也是引用传递,operate方法里实际上就是bb=aa,那么应该打印aa才对
//结果只是传的值
}
所有代码整到一起了,方法都在上面,楼主可以单独使用:
public static int factorial(int num){
if(num==0 || num==1){
return 1;
}else{
return num*factorial(num-1);
}
}
public static int Fibonacci(int num){
if(num==1 || num==2){
return 1;
}else if(num>=3){
return Fibonacci(num-1)+Fibonacci(num-2);
}else{
System.out.println("输入数字必须大于0.");
return 0;
}
}
public static String getName(String name1,String name2){
return "Hello "+name1+" and "+name2;
}
public static void main(String[] args) {
System.out.println("***********阶乘测试*********");
System.out.println("3的阶乘"+factorial(3));
System.out.println("6的阶乘"+factorial(6));
System.out.println("9的阶乘"+factorial(9));
System.out.println("**************Fibonacci测试*****");
List
for(int i=1;i<11;i++){
list.add(Fibonacci(i));
}
System.out.println("前10个数字是:");
for(Integer i : list){
System.out.print(i+"\t");
}
System.out.println("***************测试第三题*********");
System.out.println("请输入第一个姓名:");
String name1=new Scanner(System.in).nextLine();
System.out.println("请输入第二个姓名:");
String name2=new Scanner(System.in).nextLine();
System.out.println(getName(name1,name2));
}
最后一个题:java方法中参数都是值传递。
1.public class Multi(){
//定义方法计算阶乘,返回值为求得的阶乘。
public int option(int n){
long result=1;
//for循环进行连乘
for(int i=1;i<=n;i++){
result*=i;
}
return result;
}
public static void main(String[] args){
//实例化一个对象
Multi mu=new Multi();
//分别打印3、6、9的阶乘
System.out.println(mu.option(3));
System.out.println(mu.option(6));
System.out.println(mu.option(9));
}
}
2.public class Fibonacci {
//1,1,2,3,5,8,13,21,34,55
public int intValue(int n){
//当n<3时就返回1;
if(n==1||n==2){
return 1;
}else{
//递归调用自己
return intValue(n-1)+intValue(n-2);
}
}
public static void main(String[] args){
Fibonacci fi=new Fibonacci();
System.out.println(fi.intValue(10));
}
}
3.
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入两个姓名:");
//拿到第一个人名
String people1=sc.next();
////拿到第二个人名
String people2=sc.next();
//打印
System.out.println("Hello "+people1+" and "+people2);
}
二。简答题
答:java中的参数传递都是值传递。简答题非强项,请参照楼上!