棄九法

棄九法

描述
   設計一個程序求出A*B,然後將其結果每一位相加得到C,如果C的位數大於等於2,繼續將C的各位數相加,直到結果是個一位數      k。
例如:
  6*8=48;
  4+8=12;
  1+2=3;
輸出3即可。


輸入
  第一行輸入一個數N(0<N<=1000000),表示N組測試數據。
  隨後的N行每行給出兩個非負整數m,n(0<=m,n<=10^12)。
輸出
對於每一行數據,輸出k。
樣例輸入
       3
       6  8
       1234567  67
       454  1232
樣例輸出
       3
       4
       5
分析:這道題可以用棄九法來做,但要記得特殊情況,即a或者b等於0的情況。
        “棄九法”也叫做棄九驗算法。兩個因數的九餘數相乘,所得的數的九餘數應當等於兩個因數的乘積的九餘數。
下面是C語言代碼:
#include<stdio.h>
#include<stdlib.h>
int main()
{
      int t;
      scanf("%d",&t);
      while(t--)
      {
            long long int a,b,c;
            scanf("%lld%lld",&a,&b); 
            if(a==0||b==0)
            {
                  printf("0\n");
                  continue;
            }
            c=(a%9)*(b%9)%9;
            if(c==0)
                  c=9;
            printf("%d\n",c); 
      } 
      return 0;
}
發佈了23 篇原創文章 · 獲贊 83 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章