【程序21】题目:求1+2!+3!+…+20!的和
public class Prog21{
public
static void main(String[] args){
long
s=0;
long
n=1;
for(int
i=1;i<=20;i++) {
n=n*i;
s+=n;
}
System.out.println(s);
}
}
【程序22】题目:利用递归方法求5!。
public class Prog22{
public
static void main(String[] args){
int
n=5;
System.out.println(fun(n));
}
public
static int fun(int n) {
if(n0||n1)
{
return
1;
}
else
{
return
n*fun(n-1);
}
}
}
【程序23】题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
public class Prog23{
public
static void main(String[] args){
int
n=5;
System.out.println(fun(n));
}
public
static int fun(int n) {
if(n==1)
{
return
10;
}
else
{
return
2+fun(n-1);
}
}
}
【程序24】题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
public class Prog24{
public
static void main(String[] args){
Scanner
sc=new Scanner(System.in);
System.out.println(“输入一个整数(不超过五位):”);
int
x=sc.nextInt();
int
count=0;
System.out.print(“逆序输出:”);
while(x!=0)
{
count++;
System.out.print(x%10);
x/=10;
}
System.out.println();
System.out.println(“该数字是”+count+“位数”);
}
}
【程序25】题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
public class Prog25{
public
static void main(String[] args){
public
static void main(String[] args){
Scanner
sc=new Scanner(System.in);
System.out.println(“输入一个整数(五位数):”);
String
s=sc.nextLine();
char
[] chs=s.toCharArray();
if(chs[0]==chs[s.length()-0-1]&&chs[1]==chs[s.length()-1-1])
{
System.out.println(“是回文数”);
}else
{
System.out.println(“不是回文数”);
}
}
}
}
【程序26】题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
import java.io.*;
public class Prog26{
public
static void main(String[] args){
Scanner
sc=new Scanner(System.in);
System.out.println(“输入星期的前两位:”);
String
s=sc.nextLine();
if(s.charAt(0)‘M’)
{
System.out.println(“today
is Monday”);
}else
if(s.charAt(0)‘W’) {
System.out.println(“today
is Wednesday”);
}else
if(s.charAt(0)‘F’) {
System.out.println(“today
is Friday”);
}else
if(s.charAt(0)‘T’) {
if(s.charAt(1)‘u’)
{
System.out.println(“today
is Tuesday”);
}else
if(s.charAt(1)‘h’) {
System.out.println(“today
is Thursday”);
}else
{
System.out.println(“Wrong”);
}
}else
if(s.charAt(0)‘S’) {
if(s.charAt(1)‘a’)
{
System.out.println(“today
is Saturday”);
}else
if(s.charAt(1)==‘u’) {
System.out.println(“today
is Sunday”);
}else
{
System.out.println(“Wrong”);
}
}else
{
System.out.println(“Wrong”);
}
}
}
【程序27】题目:求100之内的素数
public class Prog27{
public
static void main(String[] args){
int
n=100;
int
count=0;
System.out.println(n+“以内的素数:”);
for(int
i=2;i
{
System.out.print(i+"
");
count++;
}
}
}
public
static boolean isPrime(int n) {
boolean
flag=true;
for(int
i=2;i
{
flag=false;
break;
}
}
return
flag;
}
}
【程序28】题目:对10个数进行排序
程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换, 下次类推,即用第二个元素与后8个进行比较,并进行交换。
public class Prog28{
public
static void main(String[] args){
Scanner
sc=new Scanner(System.in);
System.out.println(“请输入十个数:”);
int
n=10;
int
[] a=new int[n];
for(int
i=0;i
}
sort(a);
for(int
i=0;i
");
}
}
public
static void sort(int[] a) {
for(int
i=0;i
j=i+1;j
{
int
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
}
【程序29】题目:求一个3*3矩阵对角线元素之和
public class Prog29{
public
static void main(String[] args){
int
[][] a= {{1,3,2},{3,6,4},{5,7,2}};
int
sum=0;
int
sum2=0;
for(int
i=0;i
j=0;j System.out.print(a[i][j]+"
");
if(ij)
{
sum+=a[i][j];
}
if(ja.length-i-1)
{
sum2+=a[i][j];
}
}
System.out.println();
}
System.out.println(sum);
System.out.println(sum2);
}
}
【程序30】题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
import java.util.Scanner;
public class Prog30{
public
static void main(String[] args){
int
[] a= {1,2,3,4,5,6,7,8,9};
Scanner
sc=new Scanner(System.in);
System.out.println(“请输入一个数:”);
int
n=sc.nextInt();
System.out.println(“插入后的数组为:”);
int
[] b=new int[a.length+1];
insert(a,b,n);
for(int
i=0;i
");
}
}
public
static void insert(int [] a,int [] b,int n) {
int
index = 0;
for(int
i=0;i
}
for(int
j=0;j
index=j;
break;
}
}
for(int
x=b.length-1;x>index;x–) {
b[x]=b[x-1];
}
b[index]=n;
}
}