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;
}