文藝復興,回首C++

2016藍橋杯省賽B組第一題
有一堆煤球,堆成三角棱錐形。
具體:第一層放1個,
第二層3個(排列成三角形) ,
第三層6個(排列成三角形),
第四層10個(排列成三角形),
如果一共有100層,共有多少個煤球?
請填表示煤球總數目的數字。
注意:你提交的應該是一個整數,不要填寫任何多餘的內容或說明性文字。

#include<iostream>
using namespace std;
int main()
{
	int i;
	int sum = 0 ;
	for(i = 1 ; i<=100;i++)
	{
		sum = sum + i*(i+1)/2;
	}
	cout<< sum;
	return 0;
}
輸出結果:171700

第二種方法:

#include<iostream>
using namespace std;
int main()
{ 
	int sum = 0, tmp = 0;
	for (int i = 0 ; i <= 100 ; i++)
	{
		tmp += i;
		sum += tmp;
	}
	cout<<sum<<endl;
	return 0;
}

小題一道

兩個整數做除法,有時會產生循環小數,其循環部分便稱爲循環節。
比如:11/13 = 0.846153846153…其循環節長度爲6位
樣例輸出:

11 13

樣例輸出:

6

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int f(int n,int m)
{
	n = n % m ;
	vector<int> v; // 不限定長度,用來存儲循環節
	for(;;)
	{
		v.push_back(n);
		n *= 10;
		n = n % m;
		if(n==0)
			return 0;
		if(find(v.begin(),v.end(),n)!=v.end())
		{
			return (int)(v.end()-find(v.begin(),v.end(),n));
		}
	}
}
int main()
{
	int n,m;
	cin>>n>>m;
	cout<<f(n,m)<<endl;
	return 0;
}

今天文藝復興先到這裏,有啥問題歡迎大家評論區探討呀~~~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章