C++第二次實驗-實驗報告(2)

一、問題及代碼

/*   
*文件名:0.cpp   
*作者:張前諮   
*完成日期:2017年3月13日   
*版本號:5.11    
*對任務及其完成方法的描述部分:   
*輸入描述:無   
*問題描述:   
【項目8:貪財的富翁】  
*程序輸出:   
*問題分析:略  
*算法設計:略   
*/ 
#include<iostream>
using namespace std;
int main()
{
	double fgm=0.01,mgf=0;
	int i;
	for(i=1;i<=30;i++)
	{
		mgf+=1e+5;
		fgm*=2;
	}
	cout<<"陌給富:"<<mgf<<",富給陌:"<<fgm<<".";
	if(mgf>fgm)
	cout<<"陌生人虧了\n";
	else if(mgf==fgm)
	cout<<"兩人都沒賺\n";
	else
	cout<<"富翁虧了\n"; 
	return 0;
 } 

二、運行結果



三、心得體會

1、求解這個問題的過程中,發現了自己遺忘的知識點,如1.07374e+007這個數據應該用怎樣的數據類型存儲,最後想起用double存儲即可

2、這個問題中比較遺忘第三種可能,就是富翁和陌生人都沒賺的情況,不宜忽視這個易漏點


四、知識點總結

1、1.0e+xxx類型的數據用double型數據存儲




一、問題及代碼

/*   
*文件名:0.cpp   
*作者:張前諮   
*完成日期:2017年3月13日   
*版本號:5.11    
*對任務及其完成方法的描述部分:   
*輸入描述:無   
*問題描述:   
【項目6:輸出質數】 
*程序輸出:   
*問題分析:略  
*算法設計:略   
*/ 
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int i,j,gewei,qianwei,flag;
	cout<<"滿足條件個位數和千位數相等的質數有:"<<endl; 
	for(i=1000;i<=10000;i++)
	{
		flag=1;
		for(j=2;j<=(int)sqrt((double)i);j++)
		{
			if(i%j==0)
			flag=0;//使用flag作爲標籤,一旦發現這個數不是質數,立即標記,後續進行相應的拋棄

		}
		if(flag)
		{
		
			gewei=i/1000;
			qianwei=i%10;
			if(gewei==qianwei)
			cout<<i<<" ";
		}
	}
	return 0;
}


二、運行結果


三、心得體會

1、要懂得質數的概念,一開始不知道什麼是質數,後來才知道質數就是素數

2、合理運用flag標籤,優化程序

3、這個程序我改編了2次,一次是編譯錯誤,第二次是爲了優化程序,減小空間複雜度和時間複雜度。因此,每個程序寫完以後都要養成試圖優化的思想,

這樣才能寫出高質量的代碼


四、知識點總結

1、善於運用for循環的嵌套,可以處理很多的數據較大的問題



發佈了30 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章