java while循环例题

这个集合包含了多个编程挑战,涉及数学和逻辑运算。包括:累加序列排除特定数字、计算特定数列的和、交替序列求和、幂级数求和、斐波那契数列、鸡兔同笼问题、等差数列求和、阶乘求和、猴子吃桃问题以及买鸡问题。每个挑战都通过Java代码进行了解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.求整数1~100的累加值,但要求跳过所有个位数为3的数

public class MyDemo013 {

	public static void main(String [] args) {
		int i = 1;
		int sum =0;
		while( i<= 100 ) {
			if( i!=3 && i < 10 ) {
				sum += i;
			}else if( i >= 10 && i < 100 && i%10!=3 ){
				sum +=i;
			}else if( i%100%10 != 3 ) {
				sum +=i;
			}
			i++;
		}
		System.out.println(sum);
	}
}

2.

/** 计算1*2+3*4........+99*100 **/
public class MyDemo014 {
	public static void main(String [] args) {
		//保存最终结果
		int res = 0;
		//记录前一个数
		int num1 = 0;
		int i=1;
		while( i <= 100) {
			//判断奇偶数 奇数就记录 偶数就乘
			if ( i%2 == 0 ) {
				res=res+num1*i;
			}else{
				num1=i;
			}
			i++;
		}
		System.out.println(res);
	}
}

3.

/** s=100-96+92-88+......+4-0 **/
public class MyDemo015 {

	public static void main(String [] args) {
		int i=100;
		int s = 0;
		while( i >=0 ) {
			s+=i-(i-4);
			i-=8;
		}
		System.out.println(s);
	}
}

或者

public class MyDemo015 {

	public static void main(String [] args) {
		int i=100;
		int flag = -1;
		int s = 0;
                 while( i >=0 ) {
			flag = flag*-1;
			i=i-4;
                        s+= i*flag;
		}
		System.out.println(s);
	}
}

4.

/** 0.005米厚的纸,折叠多少次超过8844米 **/
public class MyDemo016 {

	public static void main(String [] args) {
		double ph = 0.0005;
		int cnt = 0;
		while( ph <= 8844 ) {
			cnt++;
			ph=ph*2;
		}
		System.out.println(cnt);
	}
}

5.



/** 1 1 2 3 5第三个数为前两个数的和 **/
public class MyDemo017 {

	public static void main(String [] args) {
		int num1 = 0;
		int num2 = 1;
		System.out.println(num2+"\t");
		int xh = 1;
		while( xh < 30 ) {
			int num3 = num1+num2;
			System.out.println(num3+"\t");
			num1 = num2;
			num2 = num3;
			xh++;
			
		}
	}
}

6.鸡兔同笼问题

/** 鸡和兔共十只,脚32只,求鸡和兔各多少只 **/
public class MyDemo018 {

	public static void main(String [] args) {
		//定义鸡的数量
		int num1 = 1;
		//定义兔的数量
		int num2 = 1;
		//循环求鸡和兔的数量
		
		//循环鸡的数量
		while( num1 <= 10 ) {
			//循环兔的数量
			num2 = 1;
			while( num2 <= 10) {
				if( (num1*2 + num2*4) == 32 && num1+num2 == 10) {
					System.out.println("鸡:"+num1+"兔:"+num2);
				}
				num2++;
			}
			num1++;
		}
	}
}

7.

/** 1+(1+2)+(1+2+3)+....+(1+2+3+...+20) **/
public class MyDemo019 {

	public static void main(String [] args) {
		int i = 1;
		int sum = 0;
		int result = 0;
		
		while( i<= 20 ) {
			sum = sum+i;
			result += sum;
			i++;
		}
		System.out.println(result);
	}
}

8.

/** s=1!+2!+3!+...+10! **/
public class MyDemo020 {

	public static void main(String [] args) {
		int i = 1;
		int sum = 1;
		int result = 0;
		
		while( i<= 10 ) {
			sum = sum*i;
			result += sum;
			i++;
		}
		System.out.println(result);
	}
}

9.猴子吃桃子,第一天吃掉一半多一个,第二天吃掉剩下的一半多一个,天天如此,到第九天一看只剩下一个,问原来有多少桃子?

public class MyDemo021 {

	public static void main(String [] args) {
		int num1 = 1;         
		int count = 1;
		
		while( count <= 8 ) {
			num1 = (num1+1)*2;
			count++;
		}
		System.out.println(num1);
	}
}

10.用100元买100只鸡,大公鸡5元一只,母鸡3元1只,小鸡一元3只,问各能买多少只?

public class MyDemo022 {

	public static void main(String [] args) {
		//求公鸡、母鸡、小鸡各自的数量
		int x = 1,y = 1,z = 3;
		//5x+3y+z/3=100;
		//x+y+z=100;
		while( x < 20 ) {
			y = 1;
			while( y < 33 ) {
				z=3;
				while( z < 100 ) {
					if((5*x+3*y+z/3 == 100) && x+y+z == 100) {
						System.out.println("公鸡的数量:"+x+" 母鸡的数量:"+y+" 小鸡的数量:"+z);
					}
					z+=3;
				}
				y++;
			}
			x++;
		}
	}
}

 

好的!以下是关于 Java `while` 循环计算均值的一个简单练习题及其解答思路: ### 题目描述 编写一段 Java 程序,用户可以输入若干个整数(每个数字之间以空格分隔),当输入完成后程序会自动统计所有输入数字的数量、总和以及它们的平均值。 --- ### 解答步骤 #### 步骤 1:初始化变量 我们需要几个关键变量: - 一个计数器 (`count`) 来记录输入了多少个数字; - 一个累加器 (`sum`) 来存储所有输入数字的总和; - 用户每次输入的当前数值暂存到另一个变量 (如 `input`) 中; ```java int count = 0; // 计算有多少个数字 double sum = 0.0; // 存储所有数字之和 ``` #### 步骤 2:设置退出条件 通过 `Scanner` 获取用户的键盘输入,并判断是否结束。通常我们可以约定特定字符(例如“quit”、“exit”等字符串)作为终止信号。 #### 示例代码片段: ```java import java.util.Scanner; public class WhileLoopAverage { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一组整数并按回车键确认(输入 'done' 结束):"); int count = 0; double sum = 0.0; while (scanner.hasNext()) { String inputStr = scanner.next(); if ("done".equalsIgnoreCase(inputStr)) { // 检测是否停止标志位 break; } try { int number = Integer.parseInt(inputStr); // 尝试转换成整型数据 sum += number; count++; } catch (NumberFormatException e){ System.err.println("\"" + inputStr + "\"不是有效的整数!"); } } // 输出结果前检查是否有有效数据 if (count > 0 ) { double average = sum / count; System.out.printf("您共输入了%d个数。\n", count); System.out.printf("总数为%.2f\n", sum ); System.out.printf("平均数为:%.2f\n",average ); } else{ System.out.println("未接收到任何有效数字."); } scanner.close(); } } ``` 此段代码实现了一个简单的控制台交互功能,允许用户持续地输入数字直到指定特殊关键词为止。 --- ### 进一步优化方向 如果需要更复杂的逻辑处理,比如支持浮点数而非仅仅限制于整数,则可以在解析时将尝试从 `Integer.parseInt()` 替换为类似 `Double.parseDouble()`. 另外还应该增强对非法输入异常情况下的用户体验提示信息设计等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值