反推问题(猴子摘桃)
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中调用此方法。


1406

被折叠的 条评论
为什么被折叠?



