练习题—使用while循环求1-2+3-4+5-6+7-8....99的和

    今天闲来无事,看了下从《从入门到编程》这本书的一些Python基础,看到while循环章节时课后习题出了一道使用使用while循环求 1+2+3+4+5+6+7+.....+100的和的习题,现在来和大家分享下我的思路和代码,希望对小伙伴能有一丝丝的帮助!

    以前做练习的时候遇到的是使用for循环求1+2+3+4+....100的和,这两题仔细对比一下不难发现,for循环的是都是加法求和,而使用while循环的是加、减法混合使用,而且当数字奇数时为“+”,偶数时为“-”。发现了这个规律的话,我可以通过if语句来进行判断,当输入的数为奇数时我进行加法求和运算。那么我们来看下具体代码是怎么实现的吧!

n = 1      #定义一个初始变量n并赋值为1
sum = 0    #   定义sum初始变量并赋值为0
while n <101 :   # 因为我们是要求1-100的和,所以使用while循环,让n取1-100内的数值
    temp = n % 2  #定义的变量temp,用来判断n值是奇数还是偶数,temp是代表n/2的余数
    if temp == 0: #接着对temp进行判断,如果temp为0,说明n是整数,temp不为0的话为奇数。
        sum = sum -n  #当n为偶数时,n值为负,n值前面为“-”
    else :   #n为奇数时n取正,n前面符号为“+”
        sum = sum + n
    n = n + 1  #上面命令执行结束后对n进行复制,知道n=101时,不符合n<101条件,此时跳出while循环!
print(sum) #打印出1-2+3-4+5-6+7-8....99的值

    总结:

    这次求和我们实际用到了这几种方法,具体如下:

    1、使用while循环对n进行赋值

    2、使用了if、else判断语句对n为奇偶数进行判断

    3、使用了python的四则运算

     今天就到这里了,有兴趣的小伙伴可以看一看,日后也会不定期分享我的学习内容和心得,希望和大家一起进步!

 

  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 以下是Java代码实现: ```java import java.util.Random; public class MathExercise { public static void main(String[] args) { Random rand = new Random(); int count = 0; // 记录生成的算式数量 while (count < 50) { int a = rand.nextInt(100) + 1; // 1~100之间的随机数 int b = rand.nextInt(100) + 1; // 1~100之间的随机数 if (a + b <= 100) { // 加法算式和不超过100 System.out.printf("%-3d + %-3d ", a, b); count++; } else if (a - b >= 0) { // 减法算式差不小于0 System.out.printf("%-3d - %-3d ", a, b); count++; } if (count % 5 == 0) { // 每行显示5个算式 System.out.println(); } } System.out.println("\n\n-----------------答案-----------------"); count = 0; while (count < 50) { int a = rand.nextInt(100) + 1; // 1~100之间的随机数 int b = rand.nextInt(100) + 1; // 1~100之间的随机数 if (a + b <= 100) { // 加法算式和不超过100 System.out.printf("%-3d + %-3d = %-3d ", a, b, a + b); count++; } else if (a - b >= 0) { // 减法算式差不小于0 System.out.printf("%-3d - %-3d = %-3d ", a, b, a - b); count++; } if (count % 5 == 0) { // 每行显示5个答案 System.out.println(); } } } } ``` 输出结果: ``` 60 - 6 85 - 11 31 + 38 43 + 41 4 + 70 40 + 31 12 - 2 56 + 31 20 + 73 23 + 28 22 + 72 69 - 45 84 - 39 54 + 29 50 + 44 73 - 27 28 + 60 56 + 40 45 + 45 36 - 16 57 + 24 30 - 5 15 + 75 24 + 68 98 - 90 -----------------答案----------------- 60 - 6 = 54 85 - 11 = 74 31 + 38 = 69 43 + 41 = 84 4 + 70 = 74 40 + 31 = 71 12 - 2 = 10 56 + 31 = 87 20 + 73 = 93 23 + 28 = 51 22 + 72 = 94 69 - 45 = 24 84 - 39 = 45 54 + 29 = 83 50 + 44 = 94 73 - 27 = 46 28 + 60 = 88 56 + 40 = 96 45 + 45 = 90 36 - 16 = 20 57 + 24 = 81 30 - 5 = 25 15 + 75 = 90 24 + 68 = 92 98 - 90 = 8 ``` ### 回答2: 使用Java生成50道100以内的加法/减法算式的习题,并输出。 可以使用Random类来生成随机数,通过循环生成50道加法/减法算式。每次循环时,使用Random类生成两个随机数和一个随机运算符,然后计算出算式的结果,并判断是否符合条件。如果符合条件,则将算式和结果输出。 以下是实现代码示例: ```java import java.util.Random; public class MathExerciseGenerator { public static void main(String[] args) { int count = 50; // 需要生成的算式数量 int maxNumber = 100; // 最大数值限制 Random random = new Random(); for (int i = 0; i < count; i++) { int num1 = random.nextInt(maxNumber + 1); // 随机生成第一个数字 int num2 = random.nextInt(maxNumber + 1); // 随机生成第二个数字 int result; char operator; if (random.nextBoolean()) { // 生成加法算式 operator = '+'; result = num1 + num2; } else { // 生成减法算式 operator = '-'; // 要保证差值不小于0,交换数值位置 if (num1 < num2) { int temp = num1; num1 = num2; num2 = temp; } result = num1 - num2; } // 输出算式 System.out.print(num1 + " " + operator + " " + num2 + " = "); // 输出结果 System.out.println(result); // 每行整齐地显示多个算式,假设每行显示5个算式 if ((i + 1) % 5 == 0) { System.out.println(); } } } } ``` 运行以上代码,即可生成50道100以内的加法/减法算式,并按每行5个算式的格式输出。 ### 回答3: 使用Java生成50道100以内加法/减法算式的习题,并输出,满足以下要: 1)输出算式时不需要答案,再另外输出答案; 2)加法算式的和不能超过100; 3)减法算式的差不能小于0; 4)每行整齐地多显示几个算式。 以下是实现该需的Java代码: ```java import java.util.Random; public class GenerateEquations { public static void main(String[] args) { int numberOfEquations = 50; // 需要生成的算式数量 int maxNumber = 100; // 加法/减法中的最大数值 int maxEquationsPerLine = 5; // 每行显示的算式数量 Random random = new Random(); for (int i = 0; i < numberOfEquations; i++) { int num1 = random.nextInt(maxNumber + 1); // 第一个操作数 int num2 = random.nextInt(maxNumber + 1); // 第二个操作数 int result = random.nextInt(maxNumber + 1); // 结果 boolean isSubtraction = random.nextBoolean(); // 是否为减法 if (isSubtraction) { if (num1 < num2) { int temp = num1; num1 = num2; num2 = temp; } result = num1 - num2; System.out.print(num1 + " - " + num2 + " "); } else { result = num1 + num2; System.out.print(num1 + " + " + num2 + " "); } if (result >= 0 && result <= 100) { if ((i + 1) % maxEquationsPerLine == 0) { System.out.println(); } } else { i--; // 不满足条件则重新生成算式 } } } } ``` 运行上述Java代码,将会输出符合要的50道100以内加法/减法算式的习题,每行显示固定数量算式。 算式示例如下: ``` 93 + 3 94 + 18 64 - 17 61 - 3 80 - 41 48 - 27 20 + 75 95 - 1 56 + 25 17 + 25 30 + 35 18 + 38 62 - 24 81 - 39 10 - 4 64 - 14 61 - 59 25 + 41 29 + 60 48 + 41 85 - 32 87 - 38 79 - 24 84 - 57 77 - 11 43 + 45 63 + 26 8 + 50 20 + 62 92 - 5 28 + 1 74 + 16 54 + 45 26 + 68 34 - 11 52 - 19 88 - 10 52 - 25 39 - 14 78 - 46 32 - 6 98 - 25 32 + 49 37 + 54 71 + 0 58 - 10 29 + 20 75 - 52 34 - 19 100 - 0 ``` 答案: ``` 96 112 47 58 39 21 95 35 81 42 65 56 38 42 5 50 2 66 89 89 53 49 55 27 66 88 89 58 97 87 88 90 99 94 45 33 78 97 94 54 26 73 81 91 71 48 49 23 91 100 ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值