关于剔除 一个多位数中的偶数并重新输出的问题
题目的大致意思是:
输入一个正整数,把各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数.
为什么写这个题呢?
这几天,老师给我们布置的作业之一就是这道题,因为我们班还没有学数组,所以很多同学感到比较困难,所以这里主要讲不用数组的方法。
一:首先,我们要先来分析这个问题:
1:完成这个任务需要那些数据?
2:怎么获取这些数据?
3:然后怎么通过数据的处理来输出要求结果。
(主要呢就是这三个问题,如果有漏掉的还请指出,以便进一步完善。)
答:
1:我们要获取那些位是奇数,那些不是,
即:共有多少位奇数。
2:通过if语句判断某位除以二的余数是不是0,进而得以判断是不是偶数。
(当然,分离各位还是个问题,文章后面会插个地方讲一下。)
3:怎么处理数据呢,因为我们要输出重组的新数,我们可以真正的把它变成一个多位数在输出,也可以一个一个的输出,中间只要没空格就行呗。(不过顺序就是个问题了,当然用数组就可以完美解决)😀
OK现在问题分析完毕。
二:总体来看一下我们需要那几部分编码。(因为有多重方法,讲一下其中比较麻烦的一种方法,其他几种方法后面会集中在进行概述。当然只是为了让大家加深对编程的理解与运用,不过实际上机考试之类的还是要取最简单的方法。)
先看有多少位奇数(主要就是分离各位)
1:先大概说一下分离各位,(当然会的就可以直接跳过,往下看了)
通过某数对十求余,可得最后一位,然后该数除十在循环往复,当然如果出十之后为零了,就不用继续了。
OK,现在编码求多少位奇数的语句
。
OK,下一步。
2:第二部有点麻烦,需要在具体解释一下:
直接输出的话会倒序,所以要做别的处理。
所以我们要用别的方法,我先说一种比较麻烦的
:我们说要输出的数呢,是一个整数,可以理解最后一位*10的零次幂,倒数第二位*10的一次幂·····。
所以,有了方法,就要看怎么编码::
以奇数的位数为判断标准,分别判断各个位数,并把奇数为分别乘以10的依次次幂,然后求和,加完后跳出,并输出所求之和,即为要求值。
现在编码。
这里就不发部分编码了,把上面的合并了,一块发出来