1. 程式人生 > >c++程式設計題 求數列的和

c++程式設計題 求數列的和

最近心好累,行為識別模型明明訓練的好好的,收斂也正常,Avg loss也很小,就是測試效果不好(接近沒效果)!深度學習之路真是道阻且長啊,求求了~~

偌大的世界,能給我安慰的只有漂亮姐姐了,哈哈哈哈。(還有c++,我愛你。)

題目描述

數列的第一項為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;
}