1 定義一個數,判斷是否為回文數。回文數即 一個五位數,它的第一位與最后一位相等 ,第二位與倒數第二位相等。12321
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("請輸入一個數字");
int number = scan.nextInt();//123321
int wei=1;
while(number/(int)Math.pow(10,wei)!=0){
wei++;
}
boolean c = true;
for(int i=0;i<wei/2;i++){
int num1 = number/(int)Math.pow(10,wei-1-i)%10;
int num2 = number/(int)Math.pow(10,i)%10;
if(num1!=num2){
c=false;
break;
}
}
if(c){
System.out.println("回文數");
}else{
System.out.println("不是回文數");
}
}
2 以下程序的運行結果是
public static void main(String[] args) {
int i,n;
for(i=1;i<=100;i++)
{
n=i;
if(++n%2==0)
if(++n%3==0)
if(++n%11==0)
System.out.printf("%d\n",n);
}
}
22
88
3 定義一個正整數如:1205 統計它的各位數字中零的個數,並求各位數字中的最大者。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("請輸入一個數字");
int number = scan.nextInt();
int wei=1;
while(number/(int)Math.pow(10,wei)!=0){
wei++;
}
int sum=0;
int max = number%10;
for(int i=0;i<wei;i++){
int num = number/(int)Math.pow(10,i)%10;
if(num==0){
sum++;
}
if(num>max){
max=num;
}
}
System.out.println("零的個數是:"+sum);
System.out.println("每一位中最大值是:"+max);
}
4 有1020個西瓜,第一天賣掉總數的一半后又多賣出兩個,以后每天賣剩下的一半多兩個,問幾天以后能賣完
public static void main(String[] args) {
int sum=1020;
int day=0;
while(sum>0){
sum=sum/2-2;
day++;
}
System.out.println("一共賣了:"+day+"天");
}
5猴子吃桃問題: 猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個,第二天早上又將剩下的桃子吃了一半,又多吃一個,以后每天都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子。求第一天共摘了多少個?
X=(1+1)*2
X=(x+1)*2;
public static void main(String[] args) {
int sum=1;
int day=9;
while(day>0){
sum=(sum+1)*2;
day--;
}
System.out.println("猴子一共摘了:"+sum+"個桃子");
}
6用while做 求10到20的累加和
public static void main(String[] args) {
int sum=0;
int number = 10;
while(number<=20){
sum+=number;
number++;
}
System.out.println("sum:"+sum);
}
7用while做 求1000元錢可以買到38元的鋼筆多少只?
public static void main(String[] args) {
//第一種算法
int sum=0;
while(1000-sum*38>=38){
sum++;
}
//第二種算法
/*int sum=0;
int money=1000;
while(money>=38){
money-=38;
sum++;
}*/
System.out.println(sum);
}
8用while做 雞兔同籠。雞兔一共有50只,腳一共有160只,問雞和兔各多少只?要求雞兔至少一樣一只。
public static void main(String[] args) {
int ji=1;
while(ji<=49){
int tu=1;
while(tu<=49){
if(ji+tu==50&&ji*2+tu*4==160){
System.out.println("雞 :"+ji+",兔子:"+tu);
}
tu++;
}
ji++;
}
}
9用while和while的嵌套,做 輸出一個直角三角形的圖案。
*
**
***
****
*****
******
*******
********
*********
public static void main(String[] args) {
int hang=1;
while(hang<=9){
int lie = 1;
while(lie<=hang){
System.out.print("*");
lie++;
}
hang++;
System.out.println();
}
}
10用while和while的嵌套,做 輸出九九乘法表。
public static void main(String[] args) {
int hang=1;
while(hang<=9){
int lie = 1;
while(lie<=hang){
System.out.print(hang+"*"+lie+"="+(hang*lie)+" ");
lie++;
}
hang++;
System.out.println();
}
}
11計算1+4+7+...+301,寫出算法的程序.
public static void main(String[] args) {
//第一種做法
int number=1;
int sum=0;
while(number<=301){
sum+=number;
number+=3;
}
System.out.println(sum);
//第二種做法
int num=0;
for(int i=1;i<=301;i+=3){
num+=i;
}
}
12、計算50以內的偶數之積,寫出算法的程序.
public static void main(String[] args) {
//第一種算法
int number=1;
int sum=1;
while(number<=20){
if(number%2==0){
sum*=number;
}
number++;
}
//第二種算法
int number=2;
int sum=1;
while(number<=20){
sum*=number;
number+=2;
}
}
13、計算2/1+3/2+4/3+…+(n+1)/n,寫出算法的程序.
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("請輸入要計算到的位數:");
int n = scan.nextInt();
int num=1;
int sum=0;
while(num<=n){
sum+=(num+1)/num;
num++;
}
System.out.println(sum);
}
14、2000年我國人口為13億,如果人口每年的自然增長率為7%,那么多少年 后我國人口將達到15億?設計一個算法的程序
public static void main(String[] args) {
double sum=13.0;//(單位:億);
int year=0;
while(sum<15){
sum=sum+sum*0.07;
year++;
}
System.out.println(year);
}
15、給出50個數,1,2,4,7,11,„,其規律是:第1個數是1,第2個數比第1個數大1,第3個數比第2個數大2,第4個數比第3個數大3,„,以此類推. 要求計算這50個數的和. 先將下面給出的程序框圖,再根據程序框圖寫出程序.
public static void main(String[] args) {
int i=1;
int number=1;//11
int num=1;//5
int sum=0;
while(i<=50){
sum+=number;//0+1+2+4+7+11
number+=num;//
num++;//
i++;
}
System.out.println(sum);
}