如何求S=a+aa+aaa+aaaa……(n个)
法一:
#include
int getresult_Problem(int K, int N )
{
int Unit = 1;
int Temp = 1;
for (int i = 1; i < N; i++)
{
Temp = ((Temp * 10) + 1);
Unit = Unit + Temp;
}
return Unit * K;
}
int main()
{
std::cout<
return 0;
}
法二:
main()
{
int i,y,s[1000],a=2,n=900;
for (y=0,i=n;i>0;i--)
{
s[i]=(a*i+y);
y=s[i]/10;
s[i]=s[i]%10;
}
for (i=0;i
printf("%d",s[i+1]);
}
999是10的3次方-1。因此,aaaaaaaaaaa....aaa(n个a)就等于10的n次方乘以9分之a。
不过,高精度整数运算,C++需要额外的库。
不过,这好像是个集数吧。
数学表达式:^表示乘方
原式f(a,n) = a + aa + aaa + aaaa + .... + aaaaaaa...aaaaa
= n*a*10^0 + (n-1)*a*10^1 + (n-2)*a*10^2 + ... + (1)*a*10^(n-1)
= n*a*((10^0 + 10^1 + 10^2 + ... + 10^n) - (0 + 10^1 + 2*10^2 + 3*10^3 + ... + (n-1) * 10^(n-1)))
= n*a*((10^(n+1))/9 - g(n))
其中g(n) = 0 + 10^1 + 2*10^2 + 3*10^3 + ... + (n-1) * 10^(n-1)
给g(n)乘以10,得到:
10*g(n) = 0 + 10^2 + 2*10^3 + 3*10^4 + ... + (n-2) * 10^(n-1) + (n-1) * 10^n
然后相减,就能写成有限项形式。