水手分椰子

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测监控 Prometheus 版,每月50GB免费额度
简介: 水手分椰子

📑前言

本文主要是【C】——C算法的文章,如果有什么需要改进的地方还请大佬指出⛺️

🎬作者简介:大家好,我是听风与他🥇
☁️博客首页:阿里云主页听风与他
🌄每日一句:狠狠沉淀,顶峰相见

水手分椰子

第一题

  • 6.5个水手在岛上发现了一堆椰子,先有第一个水手把椰子分成等量的5堆,还
    剩了1个给了猴子,自己藏起一堆。然后第2个水手把剩下的4堆混合后重新分为等量的5堆,还剩了1个给了猴子,自己藏起一堆。以后第三、四个水手依次按此方法处理。最后,第5个水手把剩下的椰子分成等量的5堆后,同样剩下1个给了猴子。请用迭代法编程计算并输出原来这堆椰子至少有多少个?
#include<stdio.h>
int main(){
   
   
    int i,m,j=0,k,count;
    for(i=4;i<10000;i+=4){
   
   
        count=0;
        m=i;//将i的值赋给m
        //分了五次椰子,所以循环5次
        for(k=0;k<5;k++){
   
   
            //因为四份肯定是均等的,在四份的基础上分成5个还多一个
            j = m/4*5+1;//  m/4 就是一份的值
            m=j; //将j的值赋给m,进行累乘处理
            if(j%4 == 0){
   
   
                count++;
            }else{
   
   
                break;
            }
        }
        //满足5次条件count=4 
        if(count==4){
   
   
            printf("原有椰子数%d个",j);
            break;
        } 
    }
}

第二题

在上题中,如果第5水手分得255个椰子,用递归的方法计算原来这堆椰子的个数。

#include<stdio.h>
int yezi(int y)
{
   
   
    int i;
    for(i=1;i<=5;i++)
    {
   
   
        if((y-1)%5!=0)
            return 0;
        y=(y-1)/5*4;
    }
    return 1;
 }
int main()
{
   
   
    int i;
    for(i=1;;i++)
    {
   
   
        if(yezi(i)==1)
        {
   
   
            printf("%d\n",i);
            break;
        }
    }
 }

📑文章末尾

image.png

相关文章
1002. A+B for Polynomials(25分)
1002. A+B for Polynomials(25分)
71 0
牛几 (10 分)
牛几 (10 分)
139 0
L3-011 直捣黄龙 (30 分)
L3-011 直捣黄龙 (30 分)
136 0
h0123. 素数判断 (20 分)
h0123. 素数判断 (20 分)
262 0
L1-018 大笨钟 (10 分)
L1-018 大笨钟 (10 分)
106 0
L1-043 阅览室 (20 分)
L1-043 阅览室 (20 分)
212 0
L1-011 A-B (20 分)
L1-011 A-B (20 分)
164 0
L1-017 到底有多二 (15 分)
L1-017 到底有多二 (15 分)
154 0
L1-055 谁是赢家 (10 分)
L1-055 谁是赢家 (10 分)
116 0
L1-010 比较大小 (10 分)
L1-010 比较大小 (10 分)
87 0