Java教程

蓝桥杯 最少砝码

本文主要是介绍蓝桥杯 最少砝码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

问题描述

你有一架天平。现在你要设计一套砝码,使得利用这些砝码可以称出任意 小于等于 N 的正整数重量。

那么这套砝码最少需要包含多少个砝码?

注意砝码可以放在天平两边。

输入格式

输入包含一个正整数 N。

输出格式

输出一个整数代表答案。

样例输入

7

样例输出

3

样例说明

33 个砝码重量是 1、4、6,可以称出 11 至 77的所有重量。

1 = 1;

2 = 6 − 4(天平一边放 6,另一边放 4);

3 = 4 − 1;

4 = 4;

5 = 6 − 1;

6 = 6;

7 = 1 + 6;

少于 3 个砝码不可能称出 1 至 7 的所有重量。

#include <stdio.h>
int main(){
    int max;
    int count=1,weight=1,total=1;
    scanf("%d",&max);
    while(total<max){
        count++;
        weight*=3;
        total+=weight;
    }
    printf("%d",count); 
    return 0;
} 

参考链接:(6条消息) 蓝桥杯2021年第十二届省赛-最少砝码问题C语言解_Yellow And Red的博客-CSDN博客

题目链接:蓝桥杯近 3 年省赛真题讲解(C&C++ 大学 C 组) - 《最少砝码》真题演习 - 蓝桥云课 (lanqiao.cn)

这篇关于蓝桥杯 最少砝码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!