c++程式設計題 求數列的和
阿新 • • 發佈:2019-02-09
最近心好累,行為識別模型明明訓練的好好的,收斂也正常,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;
}