zoukankan      html  css  js  c++  java
  • 1163 九余数

    方法一:先考虑两位数ab*ab=(a*10+b)*(a*10+b)=a*a*100+2*a*b*10+b*b,其各位数字之和等于a*a+2*a*b+b*b各位数字之和=(a+b)*(a+b),若a+b还是二位数,则继续按二位数分解下去,直到所得结果为个位数为止。同理三位数abc*abc=(a+b+c)*(a+b+c),四位数,五位数等等同样成立。

    方法二:找是否有规律,比如说:周期。此题周期为18,大家可以去验证。

    某数的九余数等于该数各位和的九余数,如此循环调用,正好与本题求数根相同。
    因此求数根就是该数的九余数。
    不过当该数能被九整除时,数根应该为九。
    另外需要利用两数乘积的九余数等于两数九余数的乘积(当然必要时需要再次求余)。

    我们知道,一个数除以9的余数一共有9种,分别是:123456780

    要想知道一个数除以9的余数,可以直接用除法计算,当然也有巧妙的方法。这个方法就是:先求出这个数各个数位上的数字之和,再用求出的和去除以9,得到的余数与原数除以9的余数相同。

    例如,502÷955……7,而50277÷90……7

    125÷913……8,而12588÷90……8

    利用一个数的九余数可以对除法进行验算。

    【例1 966÷4223

    根据商×除数=被除数,用23的九余数542的九余数6相乘,看积的九余数与被除数的九余数3是否相同。

    5×630,而30的九余数是3,与966的九余数正好一样。所以可基本判定计算正确。

    【例2 462÷3413……20

    根据商×除数+余数=被除数,用13的九余数434的九余数7相乘,再用所得积的九余数加上20的九余数2,看结果与被除数的九余数3是否相同。

    4×72828的九余数是1123,与462的九余数正好一样。所以可基本判定计算正确。

    需要说明的是,之所以只能基本判定计算正确,是因为有两种错误是检查不出来的。一是多写或少写09,如40249242的九余数是完全一样的;二是颠倒各个数位上的数字,如402204240的九余数也是完全一样的。

    如果一个数的各个数位上的数字之和能被9整除,那么这个数能被9整除;如果一个数各个数位上的数字之和被9除余数是几,那么这个数被9除的余数也一定是几。利用这个性质可以迅速地判断一个数能否被9整除或者求出被9除的余数是几。

      例如,3645732这个数,各个数位上的数字之和为

      364573230

      309除余3,所以3645732这个数不能被9整除,且被9除后余数为3

      但是,当一个数的数位较多时,这种计算麻烦且易错。有没有更简便的方法呢?

     

      因为我们只是判断这个式子被9除的余数,所以凡是若干个数的和是9时,就把这些数划掉,如369459729,把这些数划掉后,最多只剩下一个3(如下图),所以这个数除以9的余数是3

                                                                                        

    这种将和为99的倍数的数字划掉,用剩下的数字和求除以9的余数的方法,叫做弃九法

      一个数被9除的余数叫做这个数的九余数。利用弃九法可以计算一个数的九余数,还可以检验四则运算的正确性。

    1 求多位数7645821369815436715除以9的余数。

    分析与解:利用弃九法,将和为9的数依次划掉。                                                                           

                                                                         

    只剩下7615四个数,这时口算一下即可。口算知,765的和是9的倍数,又可划掉,只剩下1。所以这个多位数除以91

    2 将自然数123,…依次无间隔地写下去组成一个数1234567891011213…如果一直写到自然数100,那么所得的数除以9的余数是多少?

    分析与解:因为这个数太大,全部写出来很麻烦,在使用弃九法时不能逐个划掉和为99的倍数的数,所以要配合适当的分析。我们已经熟知

      123+…+945

      而459的倍数,所以每一组123,…,9都可以划掉。在199这九十九个数中,个位数有十组123,…,9,都可划掉;十位数也有十组123,…,9,也都划掉。这样在这个大数中,除了0以外,只剩下最后的100中的数字1。所以这个数除以91

      在上面的解法中,并没有计算出这个数各个数位上的数字和,而是利用弃九法分析求解。本题还有其它简捷的解法。因为一个数与它的各个数位上的数字之和除以9的余数相同,所以题中这个数各个数位上的数字之和,与12+…+100除以9的余数相同。

      利用高斯求和法,知此和是5050。因为5050的数字和为5050=10,利用弃九法,弃去一个91,故5050除以91。因此题中的数除以91

    3 检验下面的加法算式是否正确:

      26384573521983674578512907225

    分析与解:若干个加数的九余数相加,所得和的九余数应当等于这些加数的和的九余数。如果不等,那么这个加法算式肯定不正确。上式中,三个加数的九余数依次为8468+4+6的九余数为0;和的九余数为1。因为01,所以这个算式不正确。

    4 检验下面的减法算式是否正确:

      7832145-21679535664192

    分析与解:被减数的九余数减去减数的九余数(若不够减,可在被减数的九余数上加9,然后再减)应当等于差的九余数。如果不等,那么这个减法计算肯定不正确。上式中被减数的九余数是3,减数的九余数是6,由(9+3-66知,原题等号左边的九余数是6。等号右边的九余数也是6。因为66,所以这个减法运算可能正确。

      值得注意的是,这里我们用的是“可能正确”。利用弃九法检验加法、减法、乘法(见例5)运算的结果是否正确时,如果等号两边的九余数不相等,那么这个算式肯定不正确;如果等号两边的九余数相等,那么还不能确定算式是否正确,因为九余数只有012,…,8九种情况,不同的数可能有相同的九余数。所以用弃九法检验运算的正确性,只是一种粗略的检验。

    5 检验下面的乘法算式是否正确:

      46876×9537447156412

    分析与解:两个因数的九余数相乘,所得的数的九余数应当等于两个因数的乘积的九余数。如果不等,那么这个乘法计算肯定不正确。上式中,被乘数的九余数是4,乘数的九余数是64×62424的九余数是6。乘积的九余数是767,所以这个算式不正确。

      说明:因为除法是乘法的逆运算,被除数=除数×商+余数,所以当余数为零时,利用弃九法验算除法可化为用弃九法去验算乘法。例如,检验383801÷253=1517的正确性,只需检验1517×253=383801的正确性。

  • 相关阅读:
    软件编程含有中文的编码问题
    iostream与iostream.h
    C++变量的定义
    c++标准线程库
    C++单例模式
    C++,类中重载函数的调用,类中模板函数定义与调用。
    c++ stl
    C++ static调用
    openssl基本概念
    C语言malloc(0)情况分析与malloc字节对齐
  • 原文地址:https://www.cnblogs.com/anderson0/p/1455217.html
Copyright © 2011-2022 走看看