hdu 1163 合九发,同余定理

  1. #include <stdio.h>
  2. #include <string>
  3. /*
  4. 合九法:如果把一个大数的各位数字相加得到一个和,
  5. 再把这个和的各位数字相加又得一个和,再继续作数字和,
  6. 直到最后的数字和是个位数为止,
  7. 这最后的0-9中的一个数称为最初那个数的“数字根”。
  8. 如39,先是3+9=12, 不是单数则再加为1+2=3.
  9. 所以3为39的数根这个数字根等于原数除以9的余数。如39%9=3.成立
  10. 注意如果是9的数根因为除以9的余数为0,要特殊考虑。
  11. 同余定理:如果两个乘积除以m的余数等于这两个数分别除以m的余数积。 例如:7%3=1 5%3=2 7*5/3=2=1*2
  12. */
  13. int main()
  14. {
  15. int n;
  16. while( scanf("%d", &n) !=EOF && n)
  17. {
  18. //int temp = n;
  19. int all = 1;
  20. for(int i=0; i<n; i++)
  21. all = (all *n) % 9;
  22. if( all%9 ==0) printf("9 ");
  23. else printf("%d ", all);
  24. }
  25. return 0;
  26. }
  27. /*
  28. Problem Description
  29. The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then that digit is the digital root. If the resulting value contains two or more digits, those digits are summed and the process is repeated. This is continued as long as necessary to obtain a single digit.
  30. For example, consider the positive integer 24. Adding the 2 and the 4 yields a value of 6. Since 6 is a single digit, 6 is the digital root of 24. Now consider the positive integer 39. Adding the 3 and the 9 yields 12. Since 12 is not a single digit, the process must be repeated. Adding the 1 and the 2 yeilds 3, a single digit and also the digital root of 39.
  31. The Eddy's easy problem is that : give you the n,want you to find the n^n's digital Roots.
  32. Input
  33. The input file will contain a list of positive integers n, one per line. The end of the input will be indicated by an integer value of zero. Notice:For each integer in the input n(n<10000).
  34. Output
  35. Output n^n's digital root on a separate line of the output.
  36. Sample Input
  37. 2
  38. 4
  39. 0
  40. Sample Output
  41. 4
  42. 4
  43. */





附件列表

    原文地址:https://www.cnblogs.com/sober-reflection/p/98a0041f44b287a9f6661ded420b854e.html