zoukankan      html  css  js  c++  java
  • C语言编程练习18:分数矩阵

    题目描述

    我们定义如下矩阵:
    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位小数。

    样例输入 Copy

    1
    2
    3
    4
    0

    样例输出 Copy

    1.00
    3.00
    5.67
    8.83

    好家伙。这道题看似简单没想到我自己写的递归或者双循环会超时
    于是网上找了大佬的
    #include <iostream>
    #include <iomanip>
    using namespace std;
     
     
     
    int main()
    {
        int N;
        while(cin>>N && N)
        {
            int i,n;
            double sum=0;
            n=N-1;
            for(i=2;i<=N;i++)
            {
                sum+=n*1.0/i;
                n--;
            }
            sum=sum*2+N;
            cout<<setprecision(2)<<std::fixed<<sum<<endl;
     
        }
     
        return 0;
    }
    

     大佬nb,我是辣鸡!


  • 相关阅读:
    车厢重组
    军事机密
    士兵站队
    归并排序
    输油管道
    冒泡排序
    快排
    烦人的幻灯片(确实烦人啊)
    奖金(类拓扑排序)
    能量项链
  • 原文地址:https://www.cnblogs.com/FantasticDoubleFish/p/14315940.html
Copyright © 2011-2022 走看看