日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法训练 猴子分苹果c语言,算法训练 猴子分苹果

發(fā)布時間:2024/10/8 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法训练 猴子分苹果c语言,算法训练 猴子分苹果 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

問題描述

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

輸入格式

兩個整數(shù),n m

輸出格式

一個整數(shù),表示原來蘋果的數(shù)目

樣例輸入

5 1

樣例輸出

15621

數(shù)據(jù)規(guī)模和約定

0

此題類似李政道教授的那道猴子分桃算術(shù)題,用巧解的方法果然高效美妙。

可設(shè)蘋果總數(shù)為x, 往總數(shù)里加(n-1)*m個蘋果使y = x + (n-1)*m;

第一只猴子吃m個蘋果再藏(x-m)*(1/n)個,即第一只猴子共拿了y*(1/n)個蘋果,蘋果剩(n-1)/n * y,

......可以依此類推,最后蘋果剩n*一個整數(shù)再加m個。(自己動手動腦豐衣足食 :) , 可以假設(shè)加一只猴子)

得出公式: x ?= ?(n ^ n+1) - ((n - 1) * m)

#include

int main()

{

int n,m, p, t, sum;

scanf("%d%d", &n, &m);

t = n+1;

p = 1;

while(t -- > 0){

p *= n;

}

sum = p - ((n - 1 ) * m);

printf("%d", sum);

return 0;

}

但由于OJ第一個測試數(shù)據(jù)出錯,第二天猴子們把蘋果分成n份時,一份至少1個,所以本題題解不是百分之百正確。

更正后公式應(yīng)為: x = k(n ^ n+1) - ((n - 1) * m)

更正后題解

#include

int main()

{

int n,m, o, p, k, t, sum;

scanf("%d%d", &n, &m);

t = n+1;

p = 1;

o = 1;

k = 1;

while(t -- > 0){

p *= n;

o *= (n-1);

}

o /= (n-1);

while(o < m+1){

k ++;

p *= k;

o *= k;

}

sum = p - ((n - 1 ) * m);

printf("%d", sum);

return 0;

}

總結(jié)

以上是生活随笔為你收集整理的算法训练 猴子分苹果c语言,算法训练 猴子分苹果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。