acm算法模板
算法模板Wenen2017-9-29 始一万年太久,只争朝夕高精度加法Java 版本/输入两个数/输出两数相加结果import java.util.*;import java.math.*;public class Mainpublic static void main(String args)Scanner cin=new Scanner(System.in);/检测键盘是否有输入BigInteger ans=BigInteger.valueOf(0);/答案为大数while(cin.hasNext()/如果有下一行BigInteger a=cin.nextBigInteger();/等于下一行BigInteger b=cin.nextBigInteger();ans=a.add(b);/加法System.out.println(ans);/输出答案闰年:同时满足以下条件:1、年份能被 4 整除;2、年份若是 100 的整数倍的话,需被 400 整除,否则是平年.举例如下:1900 年能被 4 整除,但是因为其是100 的整数倍,却不能被 400 整除,所以是平年;而 2000 年就是闰年闰年函数:bool is_leap_year(int y)if(y%100=0)if(y%400=0)return true;else return false;else if(y%4=0)return true;else return false;最大质因数函数:int largest_prime_factor(int n)if (n1)for(int i=2;i= 10 时,d 的九余数为 d%9 = (d-1)%9+1,即 d 的前一个数的九余数加 1.得证.NN 的九余数代码:for(int i=1;iint main()int data, i = 2;scanf("%d", while(data > 1)if(data % i = 0) printf("%d ", i);data /= i;else i+;数论规律:尾数为 0,1,5,6 的不管是多少次方尾数依然不变,而尾数为 4 和9 的每 2 次循环,2,3,7,8 为每 4 次循环。循环结果如下:0, 1,5,6:位数永远是 0,1,5,62: 6,2,4,8 循环3: 1,3,9,7 循环4: 6,4 循环7: 1,7,9,3 循环8: 6,8,4,2 循环9: 1,9 循环以上全为从 0 次起