最新消息:

Scratch求数位和的两种算法

Scratch 少儿编程 4275浏览 0评论

友情提示:视频教程观看时请手动设置清晰度。

预备知识

      写数时每一个数字所占的位置叫做数位.位数:表示一个数占有多少个数位.“数位是指个位、十位、……,同一个数字由于它所在的数位不同,所表示的数值也不同.例如,在用阿拉伯数字表示数时,同一个‘6’,放在十位上表示60,放在百位上表示600,等等.”“位数,是指一个数含有几个数位.比如,五位数含有个、十、百、千、万五个数位.

      今天我们用两种不同的算法来求解任意两个自然数之间各个数的数位和(不知道这个表达能明白吗?)

 

      第一种,用字符串下标的思路分别获取每个数字的各个数字位并求和,比如求100,101,…..到999,1000的数位和,就是先用下标分别取出1,0,0,1,0,1,后在相加,1+0+0 +1+0+1……+9+9+9+1+0+0+0

 

求数位和的两种算法

 

 

       第二种,用的是纯数学的思路来展开的。对具体某个一个数对10取余,获得个位数字位,然后对商向下取整,再对10取余,获得十位数字位,依次类推,将这个数的每一个数字位都取出来并相加。

 

求数位和的两种算法

 

 

 

       通过这个两种算法,其实不难看出这种问题的关键点在于对某个数各个数位的获取。某一个数的数位和其实也可以用递归函数轻松实现:

 

求数位和的两种算法

 

 

      类似的问题还可以不用计算机通过笔算解决:

       例如计算1~100的各个数位的和(901),可以分别从个位、十位、百位分别考虑;

 

1、先计算所有个位数字之和,1~9的个位和为45,10~19的个位和为45,20~29.到90~99共计10组,所以0~100个位数字总和为450.

2、再计算所有十位数字之和,十个1,十个2,十个3.一直加到十个9,总和为450.

3、百位数字和只有一个,即100百位上的1

   所以最终结果为450+450+1=901

解决问题的方法有许多种,学习编程,就多了一种以计算机的视角来发现问题、解决问题的途径。

您必须 登录 才能发表评论!