2019秋_计导练习5 E

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45746839/article/details/102751784

题目描述
上小学四年级的小王同学虽然很笨,但他非常喜欢钻研奥数题。他遇到了这样的一个计算分数的问题:S(n)=1/3+3/5+5/7+…+n/(n+2),n为小于40的奇数。题目要求根据n来计算S(n)的值。他苦思冥想也没找出规律来解这道题,其实这道题目根本就没有规律,是老师用来难为不听话的学生用的。小王同学知道了实情后仍然不放弃去解这道题。当n值很大时,用纸笔计算非常费力,用计算器也很麻烦,有的计算器也不能计算分数。现在他只能求助你来编程帮他实现计算S(n)了,注意S(n)的计算结果应为分数形式。

输入与输出要求:
输入一个整数n,n的范围是1—40,且为奇数。输出S(n)的计算结果,如输出S(3)的结果:“14/15”。

程序运行效果:
Sample 1:
7↙
764/315
Sample 2:
21↙
2861599189/334639305
Sample 3:
39↙
116320091982737732/6845630929362225

#include<stdio.h>
#include<math.h>
int main(){
	long long s=1,s1,x=3,x1,c;
	int n,i;
	scanf("%d",&n);
	for(i=3;i<=n;i+=2){
		s=s*(i+2)+x*i;
		x=x*(i+2);
		for(s1=s,x1=x,c=1;c>0;){
			c=s1%x1;
			s1=x1;
			x1=c;
		}
		s=s/s1;
		x=x/s1;
	}printf("%lld/%lld\n",s,x);
	
return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_45746839/article/details/102751784
E
今日推荐