【C语言】称硬币问题

来源:互联网 发布:mac 国家地理的图片 编辑:程序博客网 时间:2024/06/05 18:03



       已知有n个硬币,其中有一枚假的,重量略轻,问以最复杂的情况最少需要多少次。


       次数为   log(n)+1



思路  :其实就是分段查找吧?


数学解法

#include<stdio.h>

int main()
{
    int times;
    int n;
    scanf("%d", &times);                 //要进行多少次
    int a[times];                                 //共储存多少个数据
    
    for(int j = 0; j < times; j++)
    {
        scanf("%d", &a[j]);
    }
    
    for(int i = 0; i < times; i++)
    {
        int count = 0;

        while(a[i] != 0)
        {
            a[i] = a[i]/3;
            count++;
        }
        printf("%d\n", count);
        
        
        
    }
    
    
    return 0;
}

0 0
原创粉丝点击