HDU - 5879解題文件

qq_52242579發表於2020-12-15

HDU - 5879
在這裡插入圖片描述
在這裡插入圖片描述
題意
輸入一個n,求從1到n的1/k的平方的和

解題思路
先打表,由於輸入的數可能很大,因此輸入時用字串儲存

錯誤程式碼
這個程式碼RE了,應該是習慣性多定義了一個不用的量m導致的

#include<stdio.h>
#include<math.h>
#include<string.h>

double a[1000005];
int m,n;
char s[30];
int main()
{
	int h,i;
	double k,sum=0;
	for(i=1;i<1000000;i++)
	{
		k=1.0/i;
		sum+=pow(k,2);
		a[i]=sum;
	}
	while(scanf("%s",s)!=EOF)
	{
		h=strlen(s);
		if(h>7)
		{
			printf("1.64493\n");
		}
		else
		{
		n=0;	
		}
		for(i=0;i<h;i++)
		{
		 n=n*10+s[i]-48;	
		}
		printf("%.5lf\n",a[n]);
	}
	return 0;
}

正確程式碼
刪去之後就過了

#include<stdio.h>
#include<math.h>
#include<string.h>

double a[1000005];
char s[30];
int main()
{
	int i,n,h;
	double k,sum=0;
	for(i=1;i<1000000;i++)
	{
		k=1.0/i;
		sum=sum+pow(k,2);
		a[i]=sum;
	}
	while(scanf("%s",s)!=EOF)
	{ 
		h=strlen(s);
		if(h>7)
		{
			printf("1.64493\n");
		}
		else
		{
		n=0;	
		for(i=0;i<h;i++)
		{
		 n=n*10+s[i]-48;	
		}
		printf("%.5lf\n",a[n]);	
		}
	}
	return 0;
}

相關文章