利用C 求Sn a aa aaaaaa n個a 之值

時間 2021-07-01 01:15:21

1樓:匿名使用者

【解題思路】

本題的關鍵是要算出每一項的值,比如當a=5時,那麼第1項必須是5,第2項55,第三項555……,可以用迴圈巢狀來解決這個問題:外迴圈讓i=1到n,求出從第1項到第n項的值,並累加;內迴圈必須求第i項的值,可以先讓第i項的值sn=a,然後從第2項開始,讓j=2到i,每次執行內迴圈時,讓sn=sn*10+a。比如當i=6時,求第6項的值,必須先讓sn=5,然後執行5次sn=sn*10+5,就會得到555555。

最後再把每一項累加,並輸出。具體**如下:

【程式**】

#include //控制檯操作標頭檔案

int main()                      //主函式

while(a<1||a>9);//輸入一個1-9的數給a

dowhile(n<1);  //輸入一個大於1的數給n

printf("s%d=",n);              //輸出sn=

for(s=0,i=1;i<=n;i++)          //從第1項至第n項

{for(sn=a,j=2;j<=i;j++) sn=sn*10+a;//算出第i項的值

printf("%d",sn);            //輸出第i項的值

if(i

2樓:匿名使用者

你好!首先:程式中應該是要讓b=1,11,111,1111這樣重複下去.

但是b+=(b*10),再第三次迴圈時b的值就等於121了.第二:sn是用來累加a+aa+aaa..

的值, 但是c已經累加過一次了.所以會重複. 具體請看下面的**:

for(b=1;b<=pow(10,n);b=b*10+1) //b每次應該是*10+1;

//如果是b+=(b*10))這樣的話,b首先等於1,然後+=1*10;b=11;

//然後再+=11*10;b就等於11+110=121. 從這裡開始b就錯了

3樓:匿名使用者

是#include

#include不要漏了“.h”

4樓:匿名使用者

#include

#include

using namespace std;

using namespace std;

int main()

cout<<"sn="<

return 0;}

c語言編寫:求sn=a+aa+aaa+…+aa…a n個a之值

5樓:匿名使用者

l#include "stdio.h"

int main()

printf(" = %ld",sum);

return 0;

}樓上的解答不對

6樓:樂觀的志

看了一下樓上的**,在樓上的基礎上改進了一下,比樓上的簡便一些。希望可以幫到你們。(int可以改為long)

#include

main()

printf("值的結果是:%d\n",sum);

return 0;}

7樓:匿名使用者

你用的是tc還是vc?我這裡給你個tc環境的,供你參考一下。

#include "stdio.h"

int main()

printf(" = %ld",sum);

return 0;

}這好像有一種演算法,但是我也不知道具體的。我也是菜鳥一個,希望能幫到你。

求sn=a+aa+aaa+……+aa…a(n個a)之值,其中a是一個數字,n表示a的位數 。用c語言怎樣程式設計

8樓:匿名使用者

#include

int main(int argc, char *argv)else//以後的都滿足關係:這個數

等於前一個數*10+a

}printf("%d",sum);//輸出總和return 0;

9樓:匿名使用者

^首先,an=a*111…1=a/9*999…9=a/9*(10^n-1)。所以,sn=a/9*(10-1+10^2-1+…+10^n-1)=a/9*(1+10+10^2+…+10^n-n-1)=a/9*((10^(n+1)-1)/9-n-1)。

剩下用c程式設計好了。用迴圈是最笨的辦法。

10樓:三石

舉個例子吧,2222就等於(10000-1)/9*2,在用個累加就行了,思路是這樣,

11樓:匿名使用者

#include

void main()

printf("s=%ld\n",s);}

c++求s=a+aa+aaa+aaaa+aa…a(n個a)之值,其中a是一個數字。例如:1+11+111+1111(此

12樓:匿名使用者

:#include

using namespace std;

int main()

cout <

return 0;}

13樓:義高蒲靜逸

當i不等於n的時候在s字串最後加上一個“+”號,當輸出最後一個字串,

內比如22222時候i=5,容n=5,這個時候不要再s最後加上“+”號

如果有這句,比如a=2,n=5時候輸出是這樣的:

當a=2時,n=5時,s=2+22+222+2222+22222如果沒有這句if

i<>nthens=

s+"+"那麼輸出是這樣的:

當a=2時,n=5時,s=222222222222222或者沒有判斷語句,只有s=s

+"+"

那麼輸出是這樣的:

當a=2時,n=5時,s=2+22+222+2222+22222+

14樓:匿名使用者

#include

#include

int main()

printf("%d\n", sum);

return 0;}

15樓:

=na+10(n-1)a+100(n-2)a+..+10^(n-1)a

=a[n+10(n-1)+10²(n-2)+...+10^(n-1)(n-(n-1)]=a

16樓:紫夜丶風流

#include

#include "cstdio"

#include "string.h"

using namespace std;

int main()

cout<<"s = "<

17樓:匿名使用者

#include

int main()

printf("%d\n",s);

return 0;

}望採納

c++語言程式:sn=a+aa+aaa+…(有n個a) a,n由鍵盤輸入,求sn? 我剛學c+

18樓:金色潛鳥

// c 程式 加上 前2 行 就成了 c++ 程式,一字不改。

#include

using namespace std;

#include

main()

printf("sn=%d",sum);}

19樓:匿名使用者

#include

using namespace std;

void main()

{int a=0,n=0,sn=0,ia=0;        //ia用於標記每項a的個數

//輸入a和n

cout<<"請輸入a:"<>a;

cout<<"請輸入n:"<>n;

//求sn

for(int iloop=0;iloop

20樓:

#include

void main()

{int a,n,sn,a1;

cin>>a>>n;

sn=0;

//初始a1=a

a1=a;

for(int i=0;i

21樓:水上漂湯

n個a是什麼意思,n個a相乘嗎?

c語言程式設計編寫一程式, 求sn= a+aa+aaa+…+aaa…aaa(n個a)的值,其中a是 1~9之間的一個數字............

22樓:孤獨的落葉

#include

// n+1 代表的是位數,從0開始,即n=0代表一位int getvalue(int a, int n)return temp;

}int main()

cout << result << endl;

return 0;

}注意:自己替換一下輸入輸出!c語言的輸入輸出比較麻煩所以,就換成了c++的寫法!總體的演算法不變

C語言程式設計 僅用stdio h,利用陣列求30位大整數之差

嗚哩哇啦路飛 include stdio.h void main int b 30 int c 30 int p,q int i 0 int j 0 int k int len 讀a dowhile chr 0 chr 9 for k 0 k i 2 k 讀b dowhile chr 0 chr 9...

C語言,求1 3 5n的程式設計,怎樣利用C語言程式設計求1 3 5 N 的值?

庚午子李 有技術含量的,遞迴求解 include int a int n void main 給你個完整點吧 include int main while n 2 0 for int sum 0,i 1 i n i 2 sum i printf sum d n sum return 0 扛菸頭的大槍...

c語言程式設計,利用輾轉相除法求公約數

是最大公約數嗎?不是的話你可以改一下 include void main 迴圈變數改變值 printf d n1 最大公約數,最小公倍數都有了,請查收 int maxcommondivisor int x,int y while y return x int mincommonmultiple in...