第七屆藍橋省賽真題部分題解c/c++b組

1.煤球數目

有一堆煤球,堆成三角棱錐形。具體:
第一層放1個,
第二層3個(排列成三角形),
第三層6個(排列成三角形),
第四層10個(排列成三角形),

如果一共有100層,共有多少個煤球?

請填表示煤球總數目的數字。
注意:你提交的應該是一個整數,不要填寫任何多餘的內容或說明性文字。

思路
1  3   6  10 的規律是每層的煤球數量爲n(n+1)/2
然後把這一百層的煤球數量相加
用一個for循環
#include<iostream>
#include<cstdio> 
using namespace std;
int main(){
	int sum=0;
	
	for(int i=1;i<=100;i++)
	
		sum+=(i+1)*i/2;
	
	cout<<sum<<endl;
	return 0;
}
//171700

2.生日蠟燭

某君從某年開始每年都舉辦一次生日party,並且每次都要吹熄與年齡相同根數的蠟燭。

現在算起來,他一共吹熄了236根蠟燭。

請問,他從多少歲開始過生日party的?

請填寫他開始過生日party的年齡數。
注意:你提交的應該是一個整數,不要填寫任何多餘的內容或說明性文字。


思路
i爲開始過生日的年齡,j爲現在的年齡
然後計算蠟燭總和如果等於236就輸出開始過生日的年齡
#include <iostream>
#include <cstdio>


using namespace std;

int main()
{
for(int i=1;i<=100;i++){
    int sum=0;
    for(int j=i;sum<=236;j++){
        sum+=j;
        if(sum==236){
            cout<<i;
          
        }
    }
 }
  return 0;
}
//26

3.湊算式
B DEF
A + — + ------- = 10
C GHI

(如果顯示有問題,可以參見【圖1.jpg】)

這個算式中AI代表19的數字,不同的字母代表不同的數字。

比如:
6+8/3+952/714 就是一種解法,
5+3/1+972/486 是另一種解法。

這個算式一共有多少種解法?

注意:你提交應該是個整數,不要填寫任何多餘的內容或說明性文字。

next_permutation全排列函數


#include<bits/stdc++.h>
using namespace std;
int main(){
	int a[10]={0,1,2,3,4,5,6,7,8,9};
	int sum=0;
	while(next_permutation(a+1,a+10)){//產生1-9的全排列直到無法產生爲止
	double ans=(double)a[1]+(double)a[2]/a[3]+(double)(a[4]*100+a[5]*10+a[6])/(double)(a[7]*100+a[8]*10+a[9]);
	if(ans==10.0)
	sum++;

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