C++-實驗1

1.輸入一個實數m,計算並輸出滿足不等式的最小n值

題目描述
輸入一個實數m,計算並輸出滿足下列不等式的最小n值:
1+1/2+1/3+…+1/n>m

輸入描述
一個double型數

輸出描述
兩個數:滿足條件的最小的大於m之和,滿足不等式的最小n值

輸入樣例
2.56

輸出樣例
sum=2.59286,n=7

用戶代碼

 #include <iostream>
using namespace std;
int main()
{
	double m;
	cin>>m;
	double  sum=0;
	int i=1;
	while(sum<=m)
	{
		sum +=(1.0/i);
		i++;
	}
	cout<<"sum="<<sum<<","<<"n="<<i-1;
	return 0;
}

2. 找出所有滿足關係的四位整數

題目描述
找出所有滿足關係
(AB+CD)(AB+CD)=ABCD
的四位整數ABCD。
說明:即(兩位數+兩位數)的平方=ABCD

輸入描述

輸出描述
滿足條件的四位數

輸入樣例

輸出樣例
2025
3025

用戶代碼


#include <iostream>
using namespace std;
int main()
{
	int i,j;
	for(i=10;i<100;i++)
		for(j=10;j<100;j++)
		if(i*i+j*j+2*i*j==i*100+j)
			cout<<i<<j<<endl;
	return 0;
}

3.去掉最大與最小值後的10個整數之和

題目描述
輸入12個正整數,在去掉一個最小值和一個最大值後,求剩餘10個正整數之和。

輸入描述
12個整數

輸出描述
去掉最大與最小值後的10個整數之和

輸入樣例
98 45 234 1 5 7 98 6 45 90 4 56

輸出樣例
sum=454

用戶代碼

#include <iostream>
using namespace std;
int main()
{
	int s[12]={0};
	int i=0,sum=0,max,min;
	cin>>s[i];
	max=min=sum=s[i];
	for(i=1;i<12;i++)
	{
		cin>>s[i];
		sum += s[i];
		if(max<s[i]) max=s[i];
		if(min>s[i]) min =s[i];
		
	}
	cout<<"sum="<<sum-max-min;
	
	return 0;
 }

4. 輸入一個整數,在屏幕上顯示數字三角形

題目描述
輸入一個整數n(1<n<10),在屏幕上顯示數字三角形。例如,n=5,顯示:
1
121
12321
1234321
123454321

輸入描述
一個整數n

輸出描述
顯示數字三角形

輸入樣例
5

輸出樣例
n=5
1
121
12321
1234321
123454321

用戶代碼


#include <iostream>
using namespace std;
int main()
{
	 //n-1 kongge + chenshu;
	int n;
	cin>>n;
	cout<<"n="<<n;
	int i,j;
	for(i=1;i<=n;i++)//chenshu
	{
		for(j=1;j<=n-i;j++)
			cout<<" ";
		for(j=1;j<=i;j++)
			cout<<j;
		for(j=i-1;j>0;j--)
			cout<<j;
		cout<<endl;
			

	}
	return 0;
}

5. (10分) Fibonacci數列的動態內存分配

題目描述
編寫一個C++風格的程序,用動態分配空間的方法計算Fibonacci數列的前20項並存儲到動態分配的空間中。
說明:在C++中可以使用I/O流類庫操縱符控制輸出格式,在這裏使用setw(int)控制整數的域寬,即輸出整數所佔的寬度。注意包含頭文件iomanip。
本題採用的域寬爲setw(5)

輸入描述

輸出描述
Fibonacci數列的前20項值

輸入樣例

輸出樣例
//本行是爲控制杭電中題目格式而設,輸出時不要空行
1 1 2 3 5
8 13 21 34 55
89 144 233 377 610
987 1597 2584 4181 6765

用戶代碼


 #include <iostream>
 #include <iomanip>
 using namespace std;
 int main()
 {
 	int *p=new int[20];
 	*p=*(p+1)=1;
 	cout<<setw(5)<<*p<<setw(5)<<*(p+1); 
 	p+=2;
 	for(int i=3,cnt=2;i<=20;i++,p++)
 	{
 		*p=*(p-1)+*(p-2);
 		cout<<setw(5)<<*p;
 		cnt++;
 		if(cnt%5==0)
 			cout<<endl;
 		
	 }
	 p-=20;
  	 delete []p;
 	return 0;
 }
發佈了23 篇原創文章 · 獲贊 11 · 訪問量 1615
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章