当n很大时计算1-2+3-4+5-6+7...+n
来源:互联网 发布:梦幻西游2mac更新失败 编辑:程序博客网 时间:2024/05/16 02:06
这道题目其实并不难,但是如何写才能让程序看上去更简单,更高效呢?看一下几种算法的比较:
算法一:
long fn1(long n)
这样写其实是最容易理解的写法,但是效率却很低,尤其当数据量很大时,下面是一个改进方法:
算法二:
long fn2(long n)
这样写改进了不少,将所有涉及到乘法指令的语句改为执行加法指令,既达到要题目的要求而且运算时间上缩短了很多,而代价仅仅是增加了一个整型变量!但是这样的话效率依然很低。下面看方法三
算法三:
这样写,不仅程序看起来更简单,代码量减少了不少,而且程序的运行效率得到了一个极大的提升,当然还可以进一步的优化以获得的最高效率
算法四:
在这里,用位运算符将十进制转换成二进制来运算,无疑进一步提升了效率
- 当n很大时计算1-2+3-4+5-6+7...+n
- C++语言笔试题目写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n&字符指针、浮点数指针、以及函数指针占用的内存等
- 求1-2+3-4+5-6+....+n(n取很大)
- 求n!,n很大
- 求值:1!/n+3!/n*n*n+5!/n*n*n*n*n+....k!/n*n*n*n....n*n(有k个n);
- (hdu step 2.2.1)Fibonacci(求当n很大时的斐波那契数)
- 输出n! n为用户输入的一个正整数 n! = n*(n-1)*(n-2)*...*1 5! = 5*4*3*2*1 = 120
- 求n很大时求,<= n的素数的个数(时间复杂度o(n ^ 2 / 3)模板
- 第三十一讲项目3.2-求s=1+2^2+3^3+4^4+5^5+6^6,要求n^n不能用求幂的运算直接计算(n^n表示n的n次方)
- 编写一个函数,当n为偶数的时候,输入n偶数是调用1/2+1/4........当n为奇数的时候调用1/1+1/3+1/5
- 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n, 当输入n为奇数时,调用函数 1/1+1/3+...+1/n(利用指针函数)
- 【程序39】 题目:编写一个函数,输入n为偶数时,调用函数 求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 1/1+1/3+...+1/n
- java 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
- python编写一个函数,输入n为偶数时,调用函数求1 / 2 + 1 / 4 + ... + 1 / n, 当输入n为奇数时,调用函数1 / 1 + 1 / 3 + ... + 1 / n(指针函数
- Java 题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
- 1-2+3-4+5-6+7......+n
- n=100,用递归实现:n-(n-1)+(n-2)-(n-3)........2-1;
- 如何用Java编写从命令行输入一个整数N,当N小于或等于5则求1+2+3+
- Activity 的切换(含Bundle传值)
- 字符编码
- 选择语句的使用
- printk无法在终端显示的问题
- 循环语句
- 当n很大时计算1-2+3-4+5-6+7...+n
- JavaBean规范
- 最长递增子序列
- hdu 1502 Regular Words
- JAVA技术支持课--第六次java语言技术支持(课件及作业)
- 闰年
- 趣题:由0和1构成的虫子
- 序列化
- 用Linux配置pacman