While循环以及do-while循环_练习
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);
}
作者:SunMoonSky
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。