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++的寫法!總體的演算法不變 嗚哩哇啦路飛 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... 庚午子李 有技術含量的,遞迴求解 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 扛菸頭的大槍... 是最大公約數嗎?不是的話你可以改一下 include void main 迴圈變數改變值 printf d n1 最大公約數,最小公倍數都有了,請查收 int maxcommondivisor int x,int y while y return x int mincommonmultiple in...
C語言程式設計 僅用stdio h,利用陣列求30位大整數之差
C語言,求1 3 5n的程式設計,怎樣利用C語言程式設計求1 3 5 N 的值?
c語言程式設計,利用輾轉相除法求公約數