《数字组合游戏》 40分4份

#include<stdio.h>
#include<math.h>
int main()
{
int weight1,weight2,weight3,weight4,d1,d2,d3,d4,x,flag; /*flag:满足题意的标记*/
printf("The weight is broke up as following 4 pieces:");
for(weight1=1;weight1<=40;weight1++) /*将40分解成4*/
for(weight2=weight1+1;weight2<=40-weight1;weight2++)
for(weight3=weight2+1;weight3<=40-weight1-weight2;weight3++)
if((weight4=40-weight1-weight2-weight3)>=weight3)
{
for(flag=1,x=1;x<41&&flag;x++) /*判断可否称出1~40之间的全部重量*/
for(flag=0,d1=1;d1>-2;d1--) /*将重物放在天平的左边*/
for(d2=1;d2>-2&&!flag;d2--) /*1:砝码在天平右边*/
for(d3=1;d3>-2&&!flag;d3--) /*0:不用该砝码*/
for(d4=1;d4>-2&&!flag;d4--) /*-1:砝码在天平的左边*/
if(x==weight1*d1+weight2*d2+weight3*d3+weight4*d4)
flag=1;
if(flag) printf("%d %d %d %d ",weight1,weight2,weight3,weight4);
flag=0; 
}
}

同理 13厘米的无刻度尺子 标记4个位置可表示1到13任意长度
标记点为: 1 4 5 11

两根质地不均匀的 香 ,都可以燃烧一个小时 求如何刻画15分钟:
一根点燃两头 一个点燃一头 ;前者烧完 后者剩30分钟 ,此时后者在点燃两头 ,此时到结束即15分钟

对于行列都排好序的二维数组A[M][N](升序),快速查找某个元素的方法:

先将待查找的元素与A[0][N]比较 ,比它大则删除此列,比它小删除此行 ;可以快速定位`

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值