低碳生活大奖赛

某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:

(1)每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。

 (2)每位选手都有一个起步的分数为10分。 某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?

 (3)如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。

 (4) 你的任务是算出所有可能情况。每个答案占一行。


方法1:暴力搜索

#include "stdio.h"

void main()
{
	long sum=10;
	int a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;
	for(a1=0;a1<2;a1++){
		for(a2=0;a2<2;a2++){			
			for(a3=0;a3<2;a3++){				
				for(a4=0;a4<2;a4++){
					for(a5=0;a5<2;a5++){
						for(a6=0;a6<2;a6++){
							for(a7=0;a7<2;a7++){
								for(a8=0;a8<2;a8++){
									for(a9=0;a9<2;a9++){
										for(a10=0;a10<2;a10++){
											sum=10;
											sum=(a1==0)?(sum-1):(sum*2);
											sum=(a2==0)?(sum-2):(sum*2);
											sum=(a3==0)?(sum-3):(sum*2);
											sum=(a4==0)?(sum-4):(sum*2);
											sum=(a5==0)?(sum-5):(sum*2);
											sum=(a6==0)?(sum-6):(sum*2);
											sum=(a7==0)?(sum-7):(sum*2);
											sum=(a8==0)?(sum-8):(sum*2);
											sum=(a8==0)?(sum-9):(sum*2);
											sum=(a10==0)?(sum-10):(sum*2);
											
											if (sum==100)
												printf("%d%d%d%d%d%d%d%d%d%d\n",a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
}

方法2:改进的暴力搜索

#include "stdio.h"
void main()
{
	for(int number=0;number<1024;number++)
	{
		int sum=10;
		int temp=number;
		for(int j=1;j<=10;j++){		
			sum=(temp%2==1)?(sum*2): (sum-j);
			temp=temp/2;
		}

		if (sum==100)
		{
			temp=number;
			for(int j=0;j<10;j++){
				printf("%d",temp%2);
				temp=temp/2;
			}
			printf("\n");
		}
	}
}

3、递归

#include "stdio.h"

void answer(int a[10],int sum, int index)
{
	if (index<=10)
	{
		sum=(a[index-1]==0)? (sum-index):(sum*2);
		a[index]=0; answer(a,sum,index+1);
		a[index]=1; answer(a,sum,index+1);
	}
	if(sum==100 && index==10)
	{
		for(int i=0;i<10;i++)
			printf("%d",a[i]);
		printf("\n");
	}	
}

void main()
{	
	int a[10], sum=10;
	a[0]=0;	answer(a,sum,1);
	a[0]=1; answer(a,sum,1);
	int ch=getchar();
}

4、逆序递归

#include<stdio.h>
void f(char a[], int n, int sum)
{
	if (n == 0)
	{
		if (sum == 10)
			puts(a);
		return;
	}
	a[n - 1] = '0';	//每一次调用都会分两条路走,所以就形成了外层一次,内层遍厉一遍,牛x。
	f(a, n - 1, sum + n);
	if (sum % 2 == 0)
	{
		a[n - 1] = '1';
		f(a, n - 1, sum / 2);
	}
}

void main()
{
	char a[10];
	a[10] = '\0';
	f(a, 10, 100);
}








  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 推动低碳生活方式方面的经济学研究可以涵盖以下内容: 1. 低碳消费者行为研究:研究人们对低碳生活方式的需求,以及如何影响消费者选择低碳产品。 2. 低碳产品市场研究:研究低碳产品市场的规模、增长趋势、以及如何影响低碳产品的需求和供应。 3. 碳排放交易研究:研究碳排放交易市场的运作机制,以及如何通过交易机制实现低碳生产和消费。 4. 低碳投资研究:研究如何通过投资推动低碳生活方式,以及低碳投资的收益和风险。 5. 低碳政策研究:研究各国政府在推动低碳生活方式方面的政策,以及政策的效果评估。 ### 回答2: 在推动低碳生活方式方面,经济学研究可以从多个角度提供支持和解决方案。 首先,经济学可以研究低碳技术和清洁能源发展的经济效应。这包括评估低碳技术的成本效益,探索清洁能源在经济增长中的潜力,以及研究低碳技术和就业的关系。通过这些研究,可以更好地了解如何在经济过渡阶段推动低碳生活方式。 其次,经济学可以研究碳排放的内部化和碳定价机制。通过研究碳排放的经济成本和市场机制,可以为政策制定者提供指导,促进碳定价和碳交易的发展。这可以通过设计碳交易系统、建立碳市场以及推动碳税等政策手段来实现。 另外,经济学可以研究消费者和企业对低碳生活方式的需求和行为变化。这包括研究消费者对绿色产品的支付意愿和购买决策,以及企业对低碳技术和生产方式的采纳情况。通过这些研究,可以了解消费者和企业对低碳生活方式的接受度和激励机制,从而提供促进可持续消费和生产的政策建议。 最后,经济学可以研究低碳生活方式对经济和社会发展的影响。这包括评估低碳生活方式对就业、收入分配和社会福利的影响,以及研究低碳生活方式的可持续性和可行性。通过这些研究,可以为政策制定者提供低碳转型的长期目标和策略,以实现经济和环境的双赢。 总之,经济学在推动低碳生活方式方面可以从技术经济效应、碳定价机制、消费者和企业行为以及经济社会影响等方面进行研究,为政策制定者提供有力的支持和决策依据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值