| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2388 人关注过本帖
标题:国王分财产具体算法思想有大佬说一下嘛
只看楼主 加入收藏
qianshang666
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-11-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
国王分财产具体算法思想有大佬说一下嘛
国王分财产。某国王临终前给儿子们分财产。他把财产分为若干份,然后给第一个儿子一份,再加上剩余财产的1/10;给第二个儿子两份,再加上剩余财产的1/10;…;给第i个儿子i份,再加上剩余财产的1/10。每个儿子都窃窃自喜。以为得到了父王的偏爱,孰不知国王是“一碗水端平”的。请用程序回答,老国王共有几个儿子?财产共分成了多少份?
#include<stdio.h>
void main()
{
        int a[100], i = 0, n = 0;
        do
        {
                n += 9;                                  //王子数为9的倍数
                a[n] = n;
                for (i = n - 1;i >= 1;i--)
                {
                        if (a[i + 1] % 9 != 0)
                                break;                          // 数目不符跳出 for 循环
                        else
                                a[i] = a[i + 1] * 10 / 9 + i;   // 计算到第 i 个王子时剩余的份数
                }
        } while (i >= 1);                           // 当 i>= 1 时继续循环
        printf("共有%d个儿子,财产分为%d份", n, a[1]);
        getchar();
}
搜索更多相关主题的帖子: 循环 计算 算法 for 思想 
2020-11-26 11:47
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
这题目,不是语死早,就是文科生。
文科生 是能讲清楚但不知道要讲清楚,它们稀里糊涂的;
语死早 导致知道要讲清楚,也自以为讲清楚了,但实际没讲清楚。

他把财产分为若干份,无剩余
然后给第一个儿子一份,再加上剩余财产的1/10;
给第二个儿子两份,再加上剩余财产的1/10;
…;
给第i个儿子i份,再加上剩余财产的1/10。无剩余。


设有a个儿子,分成了n份:
最后一个儿子,得到 a份;
倒数第二个儿子,得到 (a-1)份 以及 剩余的1/10,可见“剩余”应该是10(因为每个儿子获得的份数相同,也就是 (a-1) + 剩余/10 == a );
最后一个儿子的全部获得 就是 倒数第二个儿子取走后的全部剩余,也就是 a = 10-1。
所以这题的代码应该就是
程序代码:
#include <stdio.h>

int main( void )
{
    printf( "共有%d个儿子,财产分为%d份", 9, 9*9 );
}

2020-11-26 14:23
qianshang666
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-11-26
收藏
得分:0 
回复 2楼 rjsp
大佬,你认真的吗
2020-11-26 15:02
qianshang666
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2020-11-26
收藏
得分:0 
回复 2楼 rjsp
那上面那个代码他们是怎么写出来的呢,这题目是老师让我们做的,两天了没想明白上面的代码
2020-11-26 15:07
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
收藏
得分:10 
回复 4楼 qianshang666
2楼已经给你讲清楚了,“倒数第二个儿子,得到 (a-1)份 以及 剩余的1/10,可见“剩余”应该是10(因为每个儿子获得的份数相同,也就是 (a-1) + 剩余/10 == a );最后一个儿子的全部获得 就是 倒数第二个儿子取走后的全部剩余,也就是 a = 10-1”,就是这么简单;

你要往复杂里想,这道题就是的一个递归的题,最终剩余为0,
第一个儿子拿了 1 份后,剩余 80 份,他又拿了 1/10 后,剩余 72 份,共拿了9份;
第二个儿子拿了 2 份后,剩余 70 份,他又拿了 1/10 后,剩余 63 份,共拿了9份;
第三个儿子拿了 3 份后,剩余 60 份,他又拿了 1/10 后,剩余 54 份,共拿了9份;
第四个儿子拿了 4 份后,剩余 50 份,他又拿了 1/10 后,剩余 45 份,共拿了9份;
第五个儿子拿了 5 份后,剩余 40 份,他又拿了 1/10 后,剩余 36 份,共拿了9份;
第六个儿子拿了 6 份后,剩余 30 份,他又拿了 1/10 后,剩余 27 份,共拿了9份;
第七个儿子拿了 7 份后,剩余 20 份,他又拿了 1/10 后,剩余 18 份,共拿了9份;
第八个儿子拿了 8 份后,剩余 10 份,他又拿了 1/10 后,剩余 9 份,共拿了9份;
第九个儿子拿了 9 份后,剩余  0 份,              共拿了9份;

[此贴子已经被作者于2020-11-27 16:40编辑过]

2020-11-27 16:39
快速回复:国王分财产具体算法思想有大佬说一下嘛
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017774 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved