c++编程题 求数列的和

最近心好累,行为识别模型明明训练的好好的,收敛也正常,Avg loss也很小,就是测试效果不好(接近没效果)!深度学习之路真是道阻且长啊,求求了~~

题目描述

数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

输入描述:

输入数据有多组,每组占一行,由两个整数n(n < 10000)和m(m < 1000)组成,n和m的含义如前所述。

输出描述:

对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。

示例1

输入

81 4
2 2

输出

94.73
3.41

很简单,没啥难度,注意保留两位小数用cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum,以及要引入头文件#include<iomanip>,其他没啥。直接贴代码了。

#include<iostream>
#include<cmath>
#include <iomanip>
using namespace std;
int main(void){
    double n=0;
    double m=0;
    double a[1000];
    double sum=0;
    cin>>n>>m;
        a[0]=n;
        sum+=a[0];
        a[1]=sqrt(a[0]);
        for(int i=1;i<m;i++){
            a[i]=sqrt(a[i-1]);
            
            sum+=a[i];
            
        }
    cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum;
    return 0;
}

扩展一下保留小数和格式化:

#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
    double a=123456.343001;
    cout<<"a的值为123456.343001"<<endl<<endl; 
    cout<<"不做任何操作,默认情况下只显示6六位数据:"<<a<<endl<<endl;
    cout<<"指定10位小数且为浮点数表示setiosflags(ios::fixed):"<<setiosflags(ios::fixed)<<setprecision(10)<<a<<endl<<endl;
    cout<<"指定为10位小数且为指数形式表示setiosflags(ios::scientific),就是留下有效位:如果指定的有效位超过本来的有效位,其输出就是本身的位数:"<<setiosflags(ios::scientific)<<setprecision(12)<<a<<endl<<endl;
    cout<<"指定为10位小数且为指数形式表示setiosflags(ios::scientific),就是留下有效位:setprecision(10)指定留下10位有效位"<<setiosflags(ios::scientific)<<setprecision(10)<<a<<endl<<endl;
    cout<<"左对齐:"<<setiosflags(ios::left)<<setprecision(20)<<a<<endl<<endl;
    cout<<"右对齐:"<<setiosflags(ios::right)<<setprecision(20)<<a<<endl<<endl;
    system("pause");
    return 0;
}

当你输出时间格式的时候需要酱紫的输出(01:08:31)作为结果,然而你的输出却是酱紫:1:8:31,What should I do?这时候就需要C++的格式化输出了。

#include "stdlib.h"
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
    int a=1;
    cout.setf(ios::right);
    cout.fill('0');
    cout.width(2);
    cout<<a<<endl;;
    system("pause");
    return 0;
}

 

 

不四舍五入:

#include<iostream>
#include<iomanip>
#include <math.h>
using namespace std;
 
int main()
{
   double f,c;
   cout<<"请输入一个小数:";
   cin>>f;
   f=floor(f*100.0)/100.0;
   cout<<setiosflags(ios::fixed);
   cout.precision(2);        //输出小数点后两位
   cout<<"不四舍五入,保留2为小数:"<<f<<endl;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值