訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n,i,total1=0,total2=0,sum=0; printf("n請輸入整數n值:"); scanf("%d",&n); for(i=1;i<=n;i++) //你的for loop沒有設定完整 { if((i+1)%2==0) //如果你用i++ 會影響到接下來的運算 total1+=i; else total2+=i; } sum=total1-total2; //奇數的係數是正的 偶數的係數是負的 應該要用奇數和-偶數和 printf("1-2+3-4+5-6+-.....+-n值為:%d n",sum); system("PAUSE"); return EXIT_SUCCESS; }
int main(int argc, char *argv[]) { int n,i,sum=0; int sw=1; //sw作為正負控制用 printf("n請輸入整數n值:"); scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+i*sw; sw*=-1; } printf("1-2+3-4+5-6+-.....+-n值為:%d n",sum); system("PAUSE"); return EXIT_SUCCESS; }
下面是引用drizztkuo於2007-01-13 00:14發表的 : 抱歉!有點答非所問!如果僅是要得出1-2+3-4+5-6.....+-N數列的答案,程式可以改以另外一種寫法吧?!例如sum = 0 ;if (0==(n % 2)).......
int sum = 0 ; if (n%2) return(sum=(n+1)/2); else return(sum=-n/2);
#include <stdio.h> #include <stdlib.h> long fn(long n) { if(n<=0) { printf("error: n must > 0"); exit(1); } if(0==n%2) return (n/2)*(-1); else return (n/2)*(-1)+n; } int main(void) { long int i,j; printf("Please input number "); scanf("%ld",&j); i=fn(j); printf("The sum is %ld ",i); return 0; }