方法的定义加几个练习题

反推问题(猴子摘桃)

package ClassWork;
/*
 * 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,
 * 又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
 * 以后每天早上都吃了前一天剩下的一半零一个。
 * 到第10天早上想再吃时,见只剩下一个桃子了。
 * 求第一天共摘了多少n。
程序分析:采取逆向思维的方法,从后往前推断
 */
public class 反推计算 {
public static void main(String[]args) {
int n=1;
for(int i=10;i>1;i--) {
	n=(n+1)*2;
	//System.out.println(n);

}
System.out.println("第一天共摘了"+n+"个桃子");

}
}

反指数运算

package ClassWork;
/*
 * 反指数计算
一球从100米高度自由落下,每次落地后反跳回原高度的一半
;再落下,求它在 第10次落地时
,共经过多少米?第10次反弹多高?
 */
public class 反指数计算 {
public static void main(String[]args) {
	double length=100;
	double  sum1=0;
	
	for(int i=0;i<10;i++) {
		length/=2;
	sum1+=length;
	//System.out.println(length);
	if(i==9) {
		
		System.out.println("第十次反弹"+length+"米");
	}//第一次弹起伴随第二次落地,第十次弹起是第十一次落地
		
		
	}
	sum1+=100;
	System.out.println("共经过了"+(2*sum1-100)+"米");
}
}

分解质因数

package ClassWork;

import java.util.Scanner;

/*
 * 4.分解质因数
将一个正整数分解质因数。例如:输入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的值,重复执行第一步。
 */
public class 分解质因数 {
public static void main(String[]args) {
	System.out.println("请输入一个正整数");
	Scanner scanner=new Scanner(System.in);
	int n=scanner.nextInt();
	System.out.print(n+"=");
		  for(int k=2;k<=n;k++) {  
		   while(n!=k){
		    if(n%k==0){
		     System.out.print(k+"*");//输出每一个质数,除了最后一个
		     n=n/k;}
		    else{ break;  }//除完停止
		     
		   }
		  }
		  System.out.print(n);//这个n是输出的最后一个质数
		 }
		
}

完数

package ClassWork;



/*.一个数如果恰好等于它的因子之和,这个数就称为"完数"。
 * 例如6=1+2+3.编程找出1000以内的所有完数。
 * 
 */
public class 完数 {
public static void main(String[]args) {
System.out.println("1000以内的所有完数有:");
for(int i=2;i<1000;i++) {
	int sum=0;
	for(int j=1;j<i;j++) {
		if(i%j==0) {
			sum+=j;
		}
	}
	if(sum==i) {
		System.out.println(i);
	}
}
}
}

组合

package ClassWork;
/*
 * 组合
有1、2、3、4个数字,能组成多少个互
不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字
都是1、2、3、4。组成所有的排列后再去 掉不
满足条件的排列。
 */
public class 组合 {
public static void main(String[]args) {
	int count=0;
	for(int a=1;a<5;a++) {
		for( int b=1;b<5;b++) {
			for(int c=1;c<5;c++) {
				if(a!=b&&a!=c&&b!=c) {
				System.out.print(" "+a+b+c+" ");
				count++;}//count每次满足条件便计数加一
			}
		}
		}
	
	System.out.println("总共"+count+"个互不相同的无重复数字的三位数");

}
}

定义一个方法

方法包括方法头和方法体。
Java语言中方法定义语法格式如下;
《修饰符》《返回值类型》《方法名》(【参数类型参数名】,。。。){
//方法体代码
}

修饰符有public private,static(如果在主方法中直接调用自定义方法,方法需要关键字static修饰)
方法名与变量名定义方法一样,开头首字母小写,后面的首字母大写。
返回值类型要与结果类型一致。
举个例子,定义一个比较大小的简单方法。;

package ClassWork;

public class Math {
public static void main(String[]args) {
int x=20,y=30;}

	 int max(int x,int y) {
			int z;
		if(x>y) {z=x;
			System.out.println(z);
			
			
		}else {
			z=y;
			System.out.println(z);}
	
return z;}
}

这样就定义了一个比较大小的方法。
可以在别的class中调用此方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晋子健

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值