题目描述

我们定义如下矩阵:
1/1 1/2 1/3
1/2 1/1 1/2
1/3 1/2 1/1
矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。
请求出这个矩阵的总和。

输入

输入包含多组测试数据。每行给定整数N(N<50000),表示矩阵为N*N。当N=0时,输入结束。

输出

输出答案,结果保留2位小数。

样例输入

1
2
3
4
0

样例输出

1.00
3.00
5.67
8.83 这题就是一个规律题
#include<stdio.h>
int main ()
{
int n;
int i;
double sum;
while(scanf("%d",&n),n)
{
sum=;
sum+=n*;
for (i=;i<=n;i++)
{
sum+=1.0/i*(n-i+)*;
}
printf ("%.2f\n",sum);
}
return ;
}

用算法笔记上的写法时间超限了

#include<bits/stdc++.h>

using namespace std;
struct Fraction
{
int up,down;//分子 分母
//Fraction(){}
Fraction(int _up=,int _down=):up(_up),down(_down){}
};
int gcd(int a,int b)
{
if(b==) return a;
return gcd(b,a%b);
}
Fraction reduction(Fraction result)//分数的化简
{
if(result.down<){//分母为负数,令分子和分母都变为相反数
result.down=-result.down;
result.up=-result.up;
}
if(result.up==) result.down=;//如果分子为0 分母为1
else{//约去最大公约数
int d=gcd(abs(result.up),abs(result.down));
result.up/=d;
result.down/=d;
}
return result;
}
int main()
{
int n;
while(scanf("%d",&n)==&&n!=){
Fraction s[n*n+];
for(int i=;i<=n;i++){
s[n*(i-)+i].up=;
s[n*(i-)+i].down=;
} for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
if(i!=j){
if(j>i){
s[n*(i-)+j].down=s[n*(i-)+j-].down+;
s[n*(i-)+j].up=;
}
}
}
}
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
if(j<i){
s[n*(i-)+j].down=s[n*n+-n*(i-)-j].down;
s[n*(i-)+j].up=;
}
}
}
Fraction c;
c.down=s[].down;
c.up=s[].up;
for(int i=;i<=n*n;i++){
c.up=s[i].up*c.down+c.up*s[i].down;
c.down=s[i].down*c.down;
c=reduction(c);
cout<<c.up<<" "<<c.down<<endl;
}
printf("%.2f\n",1.0*c.up/c.down);
}
return ;
}

分数的四则运算就是我们正常的四则运算

最新文章

  1. MD5编码工具类 MD5Code.java
  2. android事件分发机制
  3. W3School-CSS测验
  4. 生成短链(网址) ShortUrlLink
  5. TCP的几个状态
  6. C#之串口
  7. 用with实现python的threading,新鲜啊
  8. openfire+asmack搭建的安卓即时通讯(五) 15.4.12
  9. T 恤
  10. Node.js权威指南 (7) - 实现基于TCP与UDP的数据通信
  11. kill session真的能杀掉进程吗
  12. tmux environment keep
  13. [C++程序设计]全局,局部变量
  14. CSS.06 -- 尚合网页模拟
  15. swift 录制多个音频 并将音频转换为mp3 并合成多个mp3文件为一个文件
  16. Android Training
  17. org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Cannot open con
  18. &lt;Android基础&gt;(二) Activity Part 2
  19. 【Java线程安全】 — 常用数据结构及原理(未完结)
  20. 事件Event实现消费者模型

热门文章

  1. 【luogu P1113 杂务】 题解
  2. 【luogu P1536 村村通】 题解
  3. java基础知识一览
  4. 【题解】洛谷P1002过河卒
  5. html、css和js原生写一个模态弹出框,顺便解决父元素半透明子元素不透明效果
  6. 大白话解释IP多播
  7. 29.You executed the following command to perform a backup of the USERS tablespace:
  8. C++ push方法与push_back方法
  9. z-blog博客组插件openSug.js百度搜索下拉框提示代码
  10. ZooKeeper(1)-入门