|
- # include <iostream>
- using namespace std;
- int a[105],s[105]; //定义了一个105个数字的数组,a[0]表示10^0即个数,a[1]表示10^-1即十分位,同理**,预留1-2位最后四舍五入。
- int i,j,k; //临时变量 i循环位数,k循环除数
- int x; //中转变量
- int main()
- {
- a[0]=1;
- s[0]=1;
- for (k=1; k<=100; k++)
- {
- x=0;
- for (i=0; i<=104; i++)
- {
- x=10*x+a[i];
- a[i]=x/k;
- x=x%k;
- }
- for (i=0; i<=104; i++) s[i]=s[i]+a[i];
- for (i=104; i>0; i--)
- {
- x=s[i];
- s[i]=x%10;
- s[i-1]=s[i-1]+x/10;
- }
- }
- if (s[101]>=5)
- {
- s[100]++;i=100;
- while ((s[i]>9) && (i>0))
- {
- x=s[i];
- s[i]=x%10;
- s[i-1]=s[i-1]+x/10;
- i--;
- }
- }
- cout <<s[0]<<'.';
- for (i=1; i<=100; i++) cout<<s[i];
- return 0;
- }
复制代码
|
|