分遗产

分遗产

大家好,又见面了,我是全栈君。

题目描写叙述

有一位阿拉伯老人,生前养有11匹马,他去世前立下遗嘱:大儿子、二儿子、小儿子分别继承遗产的1/2、1/4、1/6。
儿子们想来想去没法分:他们所得到的都不是整数,即分别为11/2、11/4、11/6。总不能把一匹马割成几块来分吧?
聪明的邻居牵来了自己的一匹马。对他们说:“你们看,如今有12匹马了。老大得12匹的1/2就是6匹,老二得12匹的1/4就是3匹。 老三得12匹的1/6就是2匹。还剩一匹我照旧牵回家去。

”这样把难分的问题攻克了。

如今又有一个老人要分遗产了,他有m匹马(1≤m≤1000000),而且有n个儿子(1≤n≤10),每一个儿子分别得到1/a1、1/a2、…、1/an的遗产。
由于马不能切割,而且遗产要所有分完,所以请你用上面那位聪明的邻居的方法计算一下每一个儿子能分到几匹马。

输入描写叙述:
输入包含多组測试数据。
每组測试数据包含两行:
第一行为m、n。分别代表老人拥有的马匹数和几个儿子。

第二行有n个数据a1、a2、…、an。依次代表大儿子、二儿子…第n个儿子分到的遗产的份额。(0 < ai < 50)
程序以输入0 0结束。该行不做处理。

输出描写叙述:
依照上面介绍的方法解决问题。
假设那种方法不能解决问题(即所有儿子不能得到整数匹马),则你的程序要输出”Can’t Solve”;
否者依次输出大儿子、二儿子…得到的马的匹数。

每一个数之间有一个空格隔开(最后一个数据后面没有空格)。

输入样例:
11 3
2 4 6
2 2
3 3
0 0

输出样例:
6 3 2
1 1

#include<iostream>
using namespace std;
int  LCM(int num1,int num2){
    int x,y;
    if(num1<num2){
        num1^=num2;num2^=num1;num1^=num2;
    }
    x=num1;y=num2;
    while(y!=0)
    {int temp=x%y;
    x=y;
    y=temp;
    }
    return (num1*num2)/x;
}
int main(){

    int n,m;
    cin>>m>>n;
    while (n!=0&&m!=0)
    {
        int temp=1;int sum=0;int Multiply=1;
        int heritage[10];
        for (int i = 0; i <n; i++)
        {
            cin>>heritage[i];
        }
        for (int i = 0; i <n; i++)
        {

            temp=LCM(temp,heritage[i]);
            Multiply*=heritage[i];
        }
        for (int i = 0; i <n; i++)
        {
            sum+=temp/heritage[i];
        }
        if (m%sum==0)
        {   int k=m/sum;
        for (int i = 0; i <n-1; i++)
        {
            cout<<k*temp/heritage[i]<<" ";
        }
        cout<<k*temp/heritage[n-1]<<endl;
        }
        else
        {
            cout<<"Can't Solve"<<endl;
        }
        //cout<<sum;
        cin>>m>>n;
    }
    return 0;
    //cout<<LCM(4,6);
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115629.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深入分析 Java 方法反射的实现原理

    深入分析 Java 方法反射的实现原理博主说:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。在本文中,占小狼分析了Java反射机制的实现原理(源码),感兴趣的同学可以通过本文花上几分钟了解了解。正文方法反射实例publicclassReflectCase{pu

    2022年7月8日
    20
  • 概念结构设计[通俗易懂]

    概念结构设计[通俗易懂]

    2022年8月3日
    4
  • smartctl用法心得

    smartctl用法心得SMART简介S.M.A.R.T.,全称为“Self-MonitoringAnalysisandReportingTechnology”,即“自我监测、分析及报告技术”。是一种自动的硬盘状态检测与预警系统和规范。通过在硬盘硬件内的检测指令对硬盘的硬件如磁头、盘片、马达、电路的运行情况进行监控、记录并与厂商所设定的预设安全值进行比较,若监控情况将或已超出预设安全值的安全范围,就可以通过主机的监控硬件或软件自动向用户作出警告并进行轻微的自动修复,以提前保障硬盘数据的安全。除一些出厂时间极早的硬盘外,现

    2022年10月8日
    3
  • 黑盒测试用例设计 二[通俗易懂]

    黑盒测试用例设计 二[通俗易懂]因果图法一.方法简介1.定义是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。2.因果图法产生的背景等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。如果在测试时必须考虑输入条件…

    2022年4月30日
    43
  • 国内做得好的hr系统_平安hrx下载

    国内做得好的hr系统_平安hrx下载HR专家训练营-X版本成为HR专家系列(X版本)链接:https://pan.baidu.com/s/1–jD9mySf2dIcGKEG-4LYw提取码:8boq备用链接天翼云盘下载不限速,建议使用天翼云下载速度会更快一些https://cloud.189.cn/t/ua2MfmQN7Bnq(访问码:6p4z){1}–课程简介{10}–干部管理{11}–企业文化{1…

    2025年8月26日
    4
  • 银行ATM活动图文档

    银行ATM活动图文档银行ATM问题陈述、词汇表、领域类图链接:http://blog.csdn.net/yingyingbaibai/article/details/70216506银行ATM用况图文档链接:http://blog.csdn.net/yingyingbaibai/article/details/70216792银行ATM分析类类图文档链接:http://blog.csdn.

    2022年5月24日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号