Xcode寫C++(程序練習1: 求Sn=a+aa+aaa+...+aa..a(n個a)之值)

求Sn=a+aa+aaa+…+aa…a(n個a)之值,其中a是一個數字,n表示a的位數,例如:2+22+222+2222+22222(此時n=5),n由鍵盤輸入。

1⃣️第一步,首先試想如何將2轉變爲22,即2x10+2=22,則可以寫出tmp=tmp*10+a,經過循環最終得到含有五個2的22222.

#include <iostream>
//得到數字aaaaa...a,例如(2,5)->22222
int GetNum(int a,int n)
{
    int tmp =0;
    for(int i=0;i<n;i++)
    {
        tmp=tmp*10+a;
    }
    return tmp;
}
int main()
{
    printf("%d\n",GetNum(2,5));
    return 0;
}

輸出結果:22222
在這裏插入圖片描述
代碼塊1:
int GetNum(int a,int n)
{
int tmp =0;
for(int i=0;i<n;i++)
{
tmp=tmp*10+a;
}
return tmp;
}
int main()
{
printf("%d\n",GetNum(2,5));
return 0;
}

2⃣️在第一次寫的代碼的基礎上增加一個求和函數,首先由第一步的函數得到每一輪的tmp,再將tmp的值逐個相加。本題即2+22+222=246。

#include <iostream>
//得到數字aaaaa...a,例如(2,5)->22222
int GetNum(int a,int n)
{
    int tmp =0;
    for(int i=0;i<n;i++)
    {
        tmp=tmp*10+a;
    }
    return tmp;
}
int Sum(int a,int n)
{
    int tmp =0;
    for(int i=0;i<=n;i++)
    {
        tmp+= GetNum(a,i);
    }
    return tmp;
}
int main()
{
    printf("%d\n",Sum(2,3));
    return 0;
}

輸出結果:246
在這裏插入圖片描述
源代碼如下:
#include
//得到數字aaaaa…a,例如(2,5)->22222
int GetNum(int a,int n)
{
int tmp =0;
for(int i=0;i<n;i++)
{
tmp=tmp*10+a;
}
return tmp;
}
int Sum(int a,int n)
{
int tmp =0;
for(int i=0;i<=n;i++)
{
tmp+= GetNum(a,i);
}
return tmp;
}
int main()
{
printf("%d\n",Sum(2,3));
return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章