1樓:匿名使用者
首先,n個2的計算方法是2*(10的n次方)+ (n-1)個2也就是說,比如已經求出了2222後,變到22222只要加上2乘以10的5次方
而該試首相已知,就是2,那麼第二項就是2+2*(10的1次方),第三項就是2+(第二項的結果)*(10的2次方),第四項就是2+(第三項的結果)*(10的3次方),而這10的n次方也可以不用一遍遍算的那麼麻煩,我們也可以用一個變數(比如命名為ten)來儲存,第一項的時候乘以的是10的0次方,就是ten=1,第二項的時候乘以的是10,就是ten=ten*10,第三項是10的平方,依然可以ten=ten*10...依次類推
最後只要再把這n個數加起來即可
綜上所述,我們可以寫出一個函式來計算n個aaa...aa的函式//n表示項數,a表示數字(例如你給的題中a=2)long fun(int a,int n)s+=t;
}return s;
}已經用vc++6.0試過了,是對的
這個方法應該是最省時間和空間的,當然你也可以用函式來求10的n次方,不過那樣時間和空間複雜度都開銷很大
你再理解一下吧,不懂可以再問,希望對你有幫助
2樓:伍拾步
有疑問聯絡我。。。
#include
#define n 5 //加數共有5項void main()
printf("sum=%d\n",sum);}
3樓:匿名使用者
定義整型量s,i,j,k和n i主要用來存放最高位的數 比如20 200 2000。。。j主要存放整個數 比如2 22 222 2222。。。。n為數的個數 k控制迴圈 s為和 **如下:
#include
main()
printf("%d",s);}
4樓:陽光xl不鏽
大哥,好不容易編出來啦,沒分給個最佳答案吧,程式絕對正確
/*求s=a+aa+aaa+....的值,其中a是一個數字,例如2+22+222...(此時共三個數相加),
幾個數相加由鍵盤控制
*/#include
#include
#include
void function(unsigned long int b,unsigned long int m); //實現a+aa+aaa+...=的結果
int main(void)
while(count a=l; //還原a值 function(a,n); }void function(unsigned long int b,unsigned long int m) printf("%.0f\n",sum); system("pause");} 5樓:匿名使用者 long a=2,b=2; for(i=0;i 計算2+22+222+2222+22222+222222+2222222的結果..用c語言for迴圈怎麼寫??????? 6樓:匿名使用者 解法1: main() for(i=3;i>=1;i--) /*輸出後3行*/ }解法2: main() for(i=1;i<=3;i++) /*輸出後3行*/ } 7樓:匿名使用者 #include "math.h" //後邊的求冪函式要用到這個標頭檔案 #include "stdio.h" void main() sum+=a; }sum+=2;//前邊算出的和我並沒有算第一個數2,所以在這裡還要加上2 printf("它們的和是:%d\n",sum);//呵呵 你可以執行一下 看看我的程式對不對 剛剛寫的} c語言 求內似2+22+222+2222+22222的 **有問題 算出來老是等於0
5 8樓: #include //#include //#include void main() printf("%d\n",s); system("pause");} c語言,用遞迴實現s=2+22+222+2222+2..2(n個2) 9樓: #include void main() printf("sum=%d\n",sum);} 10樓:來自海印寺芳香襲人 的啄木鳥 #include int add = 0; int num = 0; void func(int n) }void main() 這是int型的資料,n的值不能太大, 否則超出界限,可以通過long型改善,但也是有限的。 如果要想實現無限位運算演算法就比較麻煩了 這就和階乘演算法一樣,範圍要控制好 11樓:匿名使用者 #include int sum=0; int digui(int n) intmain() 12樓: long int fun(int n) return fun(n-1)+sum;}} 用c語言程式設計求s=2+22+222+……+2222…2 13樓:自我程式設計 計算思路很多比如:2+(2*10+2)+(2*10^2+2)。。(2*10^n+2) 但考慮數字長度不定,n可能會很大,那麼就不能用一般整型型別儲存(因為大小有限,超出就溢位了),所以採用字串儲存及按位計算。當然不能超出記憶體限制。 #include #include #include char *getnum(int len);//獲取任意位數的 22222...的數字字串 char *addnum(char *sum,char *num);//兩數字字串按十進位制數字相加後儲存在sum中返回 int main(void) printf("=%s",sum); return 0; }char *getnum(int len)//獲取任意位數的 22222...的數字字串 else }return sum;} 14樓:匿名使用者 /*求s=2+22+222+……+2222…2,有n個數,最長數字為n個2組成 */#include #define max 1000 int main() return 0;} 15樓:風若遠去何人留 #include int main() printf("%.0lf\n", s);//如果用int s, 這裡用%d return 0;} 16樓:匿名使用者 #include void main() 17樓:匿名使用者 本來想給答案,看到1樓回覆,還是算了,樓主抱本書多學習下吧。 思路:int i=2; i = i*10+2 疊加上去。 18樓:匿名使用者 說哈思想,就是前者*10+2,然後求和,有個小錯誤,但不是什麼大問題,只是i=1,要從1開始,寫陣列多了的緣故,將就看!!! 19樓:戶哲茂 **如下 #include unsigned long int fun2(unsigned int n)//n=5 結果 22222 {int i; unsigned long int tmp=0; for(i=0;i如圖 20樓:匿名使用者 #include void main() printf("s=%d",s);} 21樓:程式小屋 // 來一個遞迴,很簡單 int result(int n) else }int main() printf("%d", res); return 0;} 22樓:1024程式設計師 c語言經典例子之求s=a+aa+aaa+aa...a的值 23樓:夢之陽 24樓:聽不清啊 #include int main() {int i,n,s=0,t=0; scanf("%d",&n); if(n>9)return 0; for(i=0;i 25樓:匿名使用者 多看c書 程式要靠自己編寫才有意思 26樓:匿名使用者 呵呵,小意思,等一下子。。 用連個迴圈就 行了 include include void main sum pow s,1 printf f sum include stdio.h int main int argv,char argc 執行結果 我來寫個c 的,主要部分就是迴圈部分的,c語言一樣可以實現!很簡單的!inclu... 1 開啟visual studio編輯器,新建一個c語言檔案,在最前面引入標準庫檔案,然後定義一個main主函式 2 主函式中先定義一個int型的變數,用來儲存使用者輸入的數字,然後yongscanf控制輸入,輸入的值傳遞給a變數,接著判斷是否為閏年,判斷條件為能被4整除而不能被100整除或者是能被... 示例 include int main include void main 用c語言編寫程式,得出1 1 2 1 3 1 100的值 include int main void printf num d n num return 0 include int main 這樣是不更簡潔呢?物聯網校企聯盟...怎麼用c語言計算s
閏年用c語言怎麼寫
用c語言程式設計求s的值,用c語言程式設計,求S的值S