求杭电acm的1178题,c语言版的。谢谢

2024-12-17 19:25:52
推荐回答(4个)
回答1:

int main()
{
long n,i;
int a;
double s;
while(scanf("%ld",&n)&&(n!=0))
{ s=0;a=0;
for(i=1;i<=n;i++)
s=s+i*(i+1)/2;
while(s>=10)
{
s=s*1.0/10;
a++;
}
printf("%.2lfE%d\n",s,a);
}
system("pause");
}
这个代码能运行,你的程序的功能时实现整数转换为科学记数。比如1=1.00E0,10=1.00E1

回答2:

#include
#include
#include
#include
#include
#define PI 3.1415927

int main(void)
{
double a,wzuu;
int viuu;
int n;
scanf("%d",&n);
while(n>0)
{
a=n;
a=a*(a+1)/6.0*(a+2);
viuu=log10(a);
wzuu=a/pow(10,viuu);
printf("%.2lfE%d\n",wzuu,viuu);
scanf("%d",&n);
}
return 0;
}

回答3:

/*
1178 Heritage from father
Time Limit : 1000 ms Memory Limit : 65535 K Output Limit : 256 K

GUN C++
*/
/*
1、这个大家都会:1+2+3+4+…n=n(n+1)/2

2、这个有些同学忘记了:
1*1+2*2+3*3+…+n*n=n(n+1)(2n+1)/6

3、合并后得到n(n+1)(n+2)/6
*/
#include
#include
using namespace std;

const int NMAX=2147483647;
//0
int main()
{
int n,ca,e;
double total,ans;
cout.setf(ios::fixed);
cout.precision(2);
while(cin>>n && n!=0)
{
total=(double)n*(n+1)*(n+2)/6;
e=(int)log10(total);
ans=total/pow(10,e);
//cout< cout< }
return 0;
这是c++版,不想在编c了,看看吧。。。
止水2010。。。不会就问。。。

回答4:

此题的恶心之处在于输出格式和公式的套用

公式:

1+2+3+4+…n=n(n+1)/2

1*1+2*2+3*3+…+n*n=n(n+1)(2n+1)/6