-
求一个算法!!25
20000块钱 69个人分 求几天 每个人分多少钱 必须是整数!!
问题补充:就是 几天来分 这个钱 每个人每天分多少钱 69个人平均分20000块
问题补充:binfentianshi 写道求几天?什么意思?
就是 几天 来分 69个人每个人分多少钱
有20000块钱 69个人
几天 分 每个人分多少钱 必须是整数
问题补充:binfentianshi 写道我急切要求楼主能够把这个问题解释一下!愿意到底是什么?
我看你的意思是说,无论多少天,最后69个人平均非配2000,而且又是整数,这是不可能的!
天数, 和每个人分的钱数, 必须是整数, 也就是有两个变量(天数,钱数, 但必须都是整数),
定好的是两个一个是 69个人, 一个是2000块钱,
A+B=69
20000=NA+NB
N=整数
就是 这个意思 N 为两个值 但是必须是整数
问题补充:liufeng063x 写道不知道你这个题目是哪里的,只能告诉你这是一个二元一次方程,而且按照那两个条件的话是无解的。方程:69xy=20000;x为每天分的钱数,y为天数。
程序:int m = 20000; int p = 69; for (int x = 1; x < m / p; x++) { for (int y = 1; y < m / p; y++) { if (m - p * x * y < 100 && m - p * x * y > 0) { System.out.println(x+"天, 每人平均分了"+y+", 总共分了"+p * x * y+" 还剩" + (m - p * x * y)); } } }
结果:17天, 每人平均分了17, 总共分了19941 还剩59
我口算, 都知道剩 59,,2010年12月07日 11:27
30个答案 按时间排序 按投票排序
-
采纳的答案
public class SuanFa { public static void main(String[] args) { //m为钱的总数 int m = 20000; //p为参与分钱的总人数 int p = 69; //per为每人每天可以分到的钱数 int per; //s为返回的天数 int s; //z为已经分掉的钱数 int z=0; //last最终剩余钱数 int last1 = m/p;//一天将钱分完每人可以分多少其实一天将钱分完是最优解决方案之一 //last最终剩余钱数 int last = m-last1*p; System.out.println("........."+last+"。。。。"); //自由变量 int i= 0; for (per =1;per < last1; per++) { s=m/(per*p); int last2 = m-s*per*p; int last3 = m-(s+1)*per*p; //-10为如果超出钱数为最小时 if(last2==last||last3==-10){ i++; System.out.println("第"+i+"种解决方案"); int pers = (m-(s-1)*per*p)/p; System.out.println("最终剩余钱数:"+(m-((s-1)*per*p+pers*p))); System.out.println("总钱数为:"+m); System.out.println("参与分钱的人数为:"+p); System.out.println("每人每天可以分到的钱数:"+per); System.out.println("第"+s+"天每人能拿到的钱数为:"+pers); System.out.println("分钱所用的总天数:"+s); } } System.out.println("共"+i+"种解决方案"); } } //如果钱不能被人数整除分多少天也不会把钱平分成整数。 //但是算法还是有的就是使最后钱有剩余尽量使剩余达到最小。 //分钱每天能拿到per元的只有s-2天最后一天大家只能拿到pers元。 //你还有什么不懂得还可以在和我说。
2010年12月08日 10:49
-
不知道你这个题目是哪里的,只能告诉你这是一个二元一次方程,而且按照那两个条件的话是无解的。方程:69xy=20000;x为每天分的钱数,y为天数。
程序:int m = 20000; int p = 69; for (int x = 1; x < m / p; x++) { for (int y = 1; y < m / p; y++) { if (m - p * x * y < 100 && m - p * x * y > 0) { System.out.println(x+"天, 每人平均分了"+y+", 总共分了"+p * x * y+" 还剩" + (m - p * x * y)); } } }
结果:17天, 每人平均分了17, 总共分了19941 还剩592010年12月17日 16:30
-
还有一个问题,那就是不管怎样做,应该考虑这个问题,那就是1.1天也是两天,1.2天也是两天,如果用钱数/人数/天数,这个天数应该是一天内的任何时刻。
2010年12月08日 14:51
-
我急切要求楼主能够把这个问题解释一下!愿意到底是什么?
我看你的意思是说,无论多少天,最后69个人平均非配2000,而且又是整数,这是不可能的!
2010年12月08日 12:33
-
这个问题很简单...算法就是...
引用
public class SuanFa {
public static void main(String[] args) {
//m为钱的总数
int m = 20000;
//p为参与分钱的总人数
int p = 69;
//per为每人每天可以分到的钱数
int per;
//s为返回的天数
int s;
//z为已经分掉的钱数
int z=0;
//last最终剩余钱数
int last1 = m/p;//一天将钱分完每人可以分多少其实一天将钱分完是最优解决方案之一
//last最终剩余钱数
int last = m-last1*p;
System.out.println("........."+last+"。。。。");
//自由变量
int i= 0;
for (per =1;per < last1; per++) {
s=m/(per*p);
int last2 = m-s*per*p;
int last3 = m-(s+1)*per*p;
//-10为如果超出钱数为最小时
if(last2==last||last3==-10){
i++;
System.out.println("第"+i+"种解决方案");
int pers = (m-(s-1)*per*p)/p;
System.out.println("最终剩余钱数:"+(m-((s-1)*per*p+pers*p)));
System.out.println("总钱数为:"+m);
System.out.println("参与分钱的人数为:"+p);
System.out.println("每人每天可以分到的钱数:"+per);
System.out.println("第"+s+"天每人能拿到的钱数为:"+pers);
System.out.println("分钱所用的总天数:"+s);
}
}
System.out.println("共"+i+"种解决方案");
}
}
//如果钱不能被人数整除分多少天也不会把钱平分成整数。
//但是算法还是有的就是使最后钱有剩余尽量使剩余达到最小。
//分钱每天能拿到per元的只有s-2天最后一天大家只能拿到pers元。
//你还有什么不懂得还可以在和我说。2010年12月08日 10:48
-
20000整除不了69 死套的程序如下
final int s=20000,p=69;
int m=s/p;
int a,d;
int i=1;
for(;;){
a=i++;
if(m%a!=0)continue;
d=m/a;
System.out.println(a+"*"+d);
if(i>=m)break;
}2010年12月07日 14:21
相关推荐
求200以内的所有素数的简单算法!很实用的求素数算法!
这是一个非常好的算法,希望大家领会!!!
全套资源,求抱走!!! 1、给定数组a[0 : 8]={1, 8, 12, 15, 16, 21, 30, 35, 39}。采用二分搜索算法完成下述任务: 1)查找是否有元素30,若有返回元素在数组中的位置;如没有返回无此元素。 2)查找是否有元素20,...
求最近点对的算法!!求最近点对的算法!!求最近点对的算法!!求最近点对的算法!!
题目给定了一个包含n个元素的一维线性序列a[0:14]={2,9,11,3,14,7,10,8,15,4,13,1,6,5,12},想要我们求第k小的元素。 注意看,a[0:14]是一个未排序好的数组!那么想要求第k小的元素,我们第一步要干啥?然后呢?...
一、算法实现(转载自绿色兵团) 1、MD5算法是对输入的数据进行补位,使得如果数据位长度LEN对512求余的结果 是448。 .......
graham求凸包算法 graham求凸包算法 graham求凸包算法 graham求凸包算法 graham求凸包算法 graham求凸包算法
一个关于求first集合的算法, 从文法文件中读入终结符、非终结符、开始符、文法,输出FIRSTVT集,LASTVT集和算符优先矩阵
试设计一个算法,求图中一个源点到其他各顶点的最短路径。 (1)用邻接表表示图; (2)按长度非递减次序打印输出最短路径的长度及相应路径。
对算法中调用的几个函数要给出其实现过程: (1) 函数In(c):判断c是否为运算符; (2) 函数Precede(t1,t2):判断运算符t1和t2的优先级; (3) 函数Operate(a,theta,b):对a和b进行二元运算theta。 程序运行时,...
两个矩形求交集的快速算法
这是一个高精度的算法,利用一个数组来求一个数,是高精度的精华所在,输入一个数N,输出N!
分治算法求n个数的数组中找出第二个最大元素
13,15,17,19),其中位数是15,若b=(2,4,6,8,20),其中位数为6。两个等 长有序序列的中位数是含它们所有元素的有序序列的中位数,例如a、b两 个有序序列的中位数为11。设计一个算法求给定的两个有序序列的中 位数。
扩展欧几里得算法求逆元
数据结构+算法=程序 算法的特性: (1) 有穷性。往往指“在合理的范围之内”。 (2) 确定性。...(4) 有一个或多个输出。没有输出的算法是没有意义的。 (5) 有效性(可行性)。 用流程图表示算法
求根MUSIC算法,不同于谱搜索MUSIC,可以给出角度
Prim算法与Kruskal算法 求最小生成树 源代码 实验报告 完整
表达式求值 算法 代码 报告 流程图表达式求值 算法 代码 报告 流程图表达式求值 算法 代码 报告 流程图
试写一个算法,在以邻接矩阵方式储存的有向图G中求顶点i到顶点j的不含回路的长度为k的路径数