蓝桥杯-修剪灌木+最少砝码

#include<iostream>
using namespace std;
//多写几组找规律即可>﹏< 
//菜菜子 搞不明白 
int main()
{
    int N;
    int i;
    cin>>N;
    if(N%2==0)   //N是偶数 
    {
        for(i=0;i<N/2;i++)
            cout<<(N-1-i)*2<<endl;
        for(i=N/2-1;i>=0;i--)
            cout<<(N-1-i)*2<<endl;
    }
    else
    {
        for(i=0;i<=N/2;i++)
            cout<<(N-1-i)*2<<endl;
        for(i=N/2-1;i>=0;i--)
            cout<<(N-1-i)*2<<endl;
    }
}    

/* N=3时  4 2 4     N=4时 6 4 4 6 
0 0 0                0 0 0 0 
1 1 1  //第0天傍晚  1 1 1 1 
0 1 1  //第0天修剪  0 1 1 1 
1 2 2  //第1天傍晚  1 2 2 2 
1 0 2  //第1天修剪  1 0 2 2 
2 1 3  //第2天傍晚  2 1 3 3  
2 1 0  //第2天修剪  2 1 0 4 
3 2 1 //第3天傍晚   3 2 1 5 
3 0 1 //第3天修剪   3 2 1 0 
4 1 2 //第4天傍晚   4 3 2 1 
0 1 2 //第4天修剪   4 3 0 1 
1 2 3 //第5天傍晚   5 4 1 2 
1 0 3 //第5天修剪   5 0 1 2 
2 1 4 //第6天傍晚   6 1 2 3 
2 1 0 //第6天修剪   0 1 2 3
        第7天傍晚   1 2 3 4
        第7天修剪   1 0 3 4
        第8天傍晚   2 1 4 5
        第8天修剪   2 1 0 5
        第9天傍晚   3 2 1 6
        第9天修剪   3 2 1 0 
*/ 

用pow()函数注意要用double类型

#include<iostream>
using namespace std;
int main()
{
	int n;
	cin>>n; 
	int count=0;
	int sum=0;
	int i=1;
	while(n>sum)
	{
		sum+=i;
		i=i*3;	
		count++;
	}
		cout<<count<<endl;
}
/*
选择可以表示最多连续数字的组合
一个  1    可表示1 
两个  1 2  可表示1 2 3
      1 3  可表示1 2 3 4
	  1 4  可表示1 3 4 5 (不连续)
	  选1 3
三个  1 3 4 可表示 1 2 3 4 5 6 7 8 (6的表示:1+a=3+4) 
      1 3 5 可表示 1 2 3 4 5 6 7 8 9
	  1 3 6 可表示 1 2 3 4 5 6 7 8 9 10
	  1 3 7 可表示 1 2 3 4 5 6 7 8 9 10 11  (5:1+7=3+a)
	  1 3 8 可表示 1 2 3 4 5 6 7 8 9 10 11 12
	  1 3 9 可表示 1 2 3 4 5 6 7 8 9 10 11 12 13
	  1 3 10可表示 1 2 3 4 6 (不连续) 
	  选1 3 9
	  
不难看出  最少的砝码表示最多连续数字的组合是1 3 9 ... 
表示的最大数字是它们的和
*/ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值