前言:
今天各位老铁们对“python连续输入整数求其中偶数的和输入 0 终止”大概比较关心,各位老铁们都想要剖析一些“python连续输入整数求其中偶数的和输入 0 终止”的相关资讯。那么小编在网上搜集了一些关于“python连续输入整数求其中偶数的和输入 0 终止””的相关文章,希望兄弟们能喜欢,大家一起来学习一下吧!python500题:完美的偶数?
猎风老师的习题课。
大家好,下面来看一下列表基础的完美的偶数这道题目。完美的偶数是指什么?
·如果一个数本身是偶数,这是第一个条件,这个数是偶数位,比如是两位数、四位数、六位数,这是第二个条件。
·第三个条件就是这个数的各个位也是偶数,所以要满足三个条件就是完美偶数。
现在要求输入n个数,然后从这n个数中输出完美的偶数。比如这五个数中只有两个完美偶数,为什么?因为264、286,首先它们本身是偶数,然后它们的位数一个是两位的,一个四位的也是偶数,然后它的每一位都是偶数,所以就是这样来的。
这道题肯定得用到while循环拆位的方法,对它的每一位进行判断以及对它的位数进行判断。下面开始编写程序。
·首先从键盘输入一个整数n代表n个数,然后准备一个列表存放这n个数,a等于list,map int input 点split。
·准备完这n个数之后下面就开始查找完美偶数,所以来个for循环,for i in range n。要判断的数它叫a[i1],但是下面就要对这个a[]进行拆位,而拆位最后会拆成0,所以准备一个临时变量t把它存下来,对t进行拆位,来一个while循环while t。
·首先要判断它的每一位是不是偶数,其实可以反向思考,如果发现它是奇数就退出这个while循环拆位,不用再拆后面的位了。所以可以这样做:if t取于10是当前的这个个位,然后它是奇数就取于2,不等于0就退出循环。
·但是在退出循环之前用一个变量做个标记,比如让这个变量fflag等于0,如果发现它其中的某一位是奇数就让变量等于1。这样做的目的就是什么?就是最后判断这个f有没有变成1,就知道它有没有出现过奇数位。如果它不是奇数,它的某一位就继续看下一位,就是t等于t,整除10缩小10倍。
·然后还要做一件事情,就是统计这个数有几位,所以每循环一次用一个计数器给它加1,再来一个cnt变量,它的初始也等于0,然后每循环一次cnt加等于1,这样等循环结束之后根据cnt就知道这个数是几位数了。
·等这个数拆完之后下面开始做判断,完美偶数要符合三个条件。
→第一个条件,这个数本身是偶数,不能再用t了,因为t拆到最后它变成了0,所以得用到a[i],这就是为什么要把a[i]先存下来的原因,因为后面还要用它来判断是不是偶数,所以ali1%2==0,这是第一个条件。
→第二个条件,就是它的位数是偶数,就是看cnt,所以cnt取余2也等于0。
→第三个条件,就是它每一位都是偶数,每一位都是偶数,就是说没有出现过奇数的位,那这个f就没有变成1,所以它的f只要还是0就证明每一位都是偶数,一旦它的f变成了1就证明其中出现过奇数位。
满足这三个条件就输出这个数就是完美偶数。这里特别要注意这个标志,变量f和统计位数的变量cnt一定要放在循环里面,因为判断完当前的数之后对下一个数进行重新判断的时候要把这些变量要清零,所以一定要放在循环里面。