请用C语言编一个求 1+2+3……+n 的程序, 题目大家都见过吧
我就不多说什么了 大家给些程序把 不过注意不要把这道题想得太简单 (给c/c++老鸟的题 新手也可以进来学习)
void main(void) {
int n;
scanf("%d",&n); printf("%ld",(long)n%2?n*(n/2l+1):(1+n)*(n/2l)); }
#include <stdio.h> void main() { int n; scanf("%d", &n); printf("%d", n*(n+1)>>1); }
这样对么
>>是位运算符 右移 优先次序是从左向右 本来我想用n*(n+1)/2 但是我朋友说n*(n+1)>>1也可以
[此贴子已经被作者于2004-08-29 20:39:32编辑过]
这样最起码这样省去了for()循环 n*(n+1)/2和n*(n+1)>>1的速度是一样的
可是朋友们说这样写 可能会溢出的.....当n很大时......我不知道对不对``
[此贴子已经被作者于2004-08-29 19:01:02编辑过]
要不要考虑高精度?
[此贴子已经被作者于2004-08-29 19:41:19编辑过]