1.菱形问题
import java.util.*;
public class Dylxjava
{
public static void main( String []args){
int n=0;
System.out.println("请输入菱形变长:");
Scanner s = new Scanner(System.in);
n = s.nextInt();
for (int i=1;i<=n ; i++)
{
for (int k=1;k<=n-i ;k++ )
System.out.print(" ");
for (int j=1;j<=2*i-1 ;j++ )
System.out.print("*");
System.out.println();
}
for (int i=1;i<n ;i++ )
{
for (int k=1;k<=i ;k++ )
System.out.print(" ");
for (int j=1;j<2*(n-i) ;j++ )
System.out.print("*");
System.out.println();
}
}
}
2.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
import java.util.*;
public class Nb
{
public static void main( String []args){
int n=0;
int m=0;
int t=0;
int a=0;
System.out.println("请输入两个数字:");
Scanner s = new Scanner(System.in);
n=s.nextInt();
m=s.nextInt();
for (int i =1;i<=m ;i++ )
{
t=t*10+n;
System.out.println(t);
a+=t;
}
System.out.println(a);
}
}
3,猴子吃桃的问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
.程序分析:采取逆向思维的方法,从后往前推断。
//运用递归public class Taozi
{
public static int total(int day){
if (day==10){
return 1;
}
else{
return (total(day+1)+1)*2;
}
}
public static void main( String []args){
System.out.println(total(1));
}
}
4,有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
程序分析:请抓住分子与分母的变化规律。
public class Test20B
{
public static void main( String []args){
float fm=1;
float fz=1;
float temp=0;
float sum=0;
for (int i =1;i<=20 ;i++ )
{
temp=fm;
fm=fz;
fz=fz+temp;
sum+=fz/fm;
System.out.println(sum);
}
System.out.println(" "+sum);
}
}.
//兔子问题
public class Tuzi
{
public static void main(String []args){
int i=0;
for (i=1;i<=20 ;i++ )
System.out.println(f(i));
}
public static int f(int x){
if (x==1||x==2)
return 1;
else
return f(x-1)+f(x-2);
}
}
6 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
import java.util.Scanner;
public class Test37
{
public static void main( String []args){
Scanner s = new Scanner( System.in);
int n = s.nextInt();
boolean[] arr = new boolean[n];
for (int i=0;i<arr.length; i++ )
{
arr[i]=true;
}
int leftCount = n;
int countNum = 0;
int index = 0;
while (leftCount > 1)
{
if (arr[index] ==true){
countNum++;
if (countNum==3){
countNum=0;
arr[index] = false;
leftCount--;
}
}
index++;
if (index==n){
index=0;
}
}
for (int i=0;i<n ;i++ )
{
if (arr[i]==true)
System.out.println(i);
}
}
}