01简单计算题1精要.ppt

计算: 1-2+3-4+5-6+7......+n long fn(long n) { long sum=0; int i, flag=1; for (i=1; i=n; i++) { sum = sum+flag*i; flag = -flag; } return sum; } long fn(long n) { long sum=0; int j=1, i=1, flag=1; while (j=n) { sum = sum+i; i = -i; i0 ? i++ : i--; j++; } return sum; } long fn(long n) { if(n%2==0) return (n/2)*(-1); else return (n/2)*(-1)+n; } 最大公约数问题 写一个程序,求两个正整数的最大公约数。如果两个正整数都很大,有什么简单的算法吗? 解法一:辗转相除法 示例如下: f (42, 30) = f (30, 12) = f (12, 6) = f (6, 0) = 6 具体代码如下: int gcd(int x, int y) { return (!y) ? x : gcd(y, x%y) ; } 最大公约数问题 解法二:除法转换成减法 如果一个数能够同时整除 x 和 y,

文档评论(0)

1亿VIP精品文档

相关文档