藍橋杯題目練習 猴子分蘋果

2021-10-03 03:35:04 字數 1337 閱讀 3420

猴子分蘋果

題目描述

秋天到了,n只猴子採摘了一大堆蘋果放到山洞裡,約定第二天平分。這些猴子很崇拜猴王孫悟空,所以都想給他留一些蘋果。第一只猴子悄悄來到山洞,把蘋果平均分成n份,把剩下的m個蘋果吃了,然後藏起來乙份,最後把剩下的蘋果重新合在一起。這些猴子依次悄悄來到山洞,都做同樣的操作,恰好每次都剩下了m個蘋果。第二天,這些猴子來到山洞,把剩下的蘋果分成n分,巧了,還是剩下了m個。問,原來這些猴子至少採了多少個蘋果。

資料規模和約定

0< m< n< 9

輸入

兩個整數,n m

輸出

乙個整數,表示原來蘋果的數目

樣例輸入

5 1樣例輸出

15621

在做這道題時,剛開始想的很複雜,後來在網上搜尋後根據李政道教授的那道猴子分桃算術題來求解是非常高效的,思路如下:

可設蘋果總數為x, 往總數裡加(n-1)m個蘋果使y = x + (n-1)m,這一步相當於是對每次的餘數m新增(n-1)個,使得每次猴子分了桃後沒有餘數;

第一只猴子吃m個蘋果再藏(x-m)(1/n)個,即第一只猴子共拿了(1/n)y個蘋果,蘋果剩((n-1)/n)y,依次計算下去則可以推算出第一天最後乙個猴子分了後還剩((n-1)n/nn)y;

第二天只需要分配,所以當前所剩的桃子數量去除以猴子數量是乙個整數,因為題目是至少,可以設平均分配數量為1,即((n-1)n/nn+1)y=1,要使該等式成立,則y = nn+1,再根據y = x + (n-1)m可以得到x = nn+1 -(n-1)m;

#include

#include

#include

#include

using

namespace std;

int n, m;

long

long sum;

intmain()

《藍橋杯》演算法訓練 猴子分蘋果

問題描述 秋天到了,n只猴子採摘了一大堆蘋果放到山洞裡,約定第二天平分。這些猴子很崇拜猴王孫悟空,所以都想給他留一些蘋果。第一只猴子悄悄來到山洞,把蘋果平均分成n份,把剩下的m個蘋果吃了,然後藏起來乙份,最後把剩下的蘋果重新合在一起。這些猴子依次悄悄來到山洞,都做同樣的操作,恰好每次都剩下了m個蘋果...

藍橋杯 猴子分香蕉

題目描述 5只猴子是好朋友,在海邊的椰子樹上睡著了。這期間,有商船把一大堆香蕉忘記在沙灘上離去。第1只猴子醒來,把香蕉均分成5堆,還剩下1個,就吃掉並把自己的乙份藏起來繼續睡覺。第2只猴子醒來,重新把香蕉均分成5堆,還剩下2個,就吃掉並把自己的乙份藏起來繼續睡覺。第3只猴子醒來,重新把香蕉均分成5堆...

猴子分蘋果

題目 海灘上有一堆蘋果是n只猴子的共同財產,準備平均分配。第一只猴子先到,它見別的猴子遲遲不來,說把蘋果平均分成n堆,把多餘的乙個丟到海浬,並拿走了其中一堆。第二隻猴子以及後面的猴子都照此辦,說把蘋果平均分成n堆,把多餘的乙個丟到海浬,並拿走其中的一堆蘋果。程式設計求出原來的至少有多少個蘋果。inc...