求解大神note3

共有 410 人关注过本帖
标题:穷举法优化的问题求解,求个大神。
等 级:新手上路
帖 子:10
&&已结贴√
&&问题点数:20&&回复次数:14&&&
穷举法优化的问题求解,求个大神。
问题&&:该如何修改代码达到以下所有计算式的情况
例如 1+1+1+1等同于1+(1+(1+1))我想消除这些重复的计算式
不含括号:ABCD,共1种
1个括号:(AB)CD、A(BC)D、AB(CD)、(ABC)D、A(BCD),共5种
以上两种情况未考虑
2个括号:(AB)(CD)、((AB)C)D、(A(BC))D、A(B(CD))、A((BC)D),共5种
一共有38400种情况
楼下代码只考虑如下计算式情况
第1种情况&&((a 。b)。c)。d
第2种情况(a 。b)。(c。 d)
第3种情况 (a。(b。c))。d
第4种情况&&a。((b。c)。d )
第5种情况 a。(b。(c。d))
[ 本帖最后由 流光溢彩丿 于
12:59 编辑 ]
搜索更多相关主题的帖子:
等 级:新手上路
帖 子:10
程序代码:void&&&D24(int v[], int result)&&&&&&&&& // 穷举法求结果,增加变量result
&&&&&& char op[<font color=#]={'+','-','*','/'};&&&&&&&&&&&& //&&+:0&&-:1 *:2&&/:3
&&&&&& int count=<font color=#;// 计数成功次数
&&&&&& int i1,i2,i3,i4;
&&&&&& int f1,f2,f3;
//-----------四重循环开始穷举四个数字的位置: 4!=24 种&&A44--------------------------
&&&&&& for (i1=<font color=#;i1&<font color=#;i1++)&&&&&&&&&&&&&&&&&&//i表示v[i]下标的位置 i1 i2 i3 i4不能相等(分别为0 1 2 3)&&表示4个数排列在数组4个不同的位置上
&&&&&&&&for (i2=<font color=#;i2&<font color=#;i2++)&&&&&&&&&&&&&&&&&// 四重循环对四个数穷举
&&&&&&&&& if (i2!=i1)
&&&&&&&&& for (i3=<font color=#;i3&<font color=#;i3++)
&&&&&&&&&&&&if (i3!=i2 && i3!=i1)
&&&&&&&&&&&&for (i4=<font color=#;i4&<font color=#;i4++)
&&&&&&&&&&&&&&&if (i4!=i3 && i4!=i2 && i4!=i1)
&&&&&&&&&&&&&&&&&{
//-----------三重循环开始穷举三个运算符: 4X4X4=64 种 +-*/可以重复使用---------------------------
&&&&&&&&&&&&&&&&&& for (f1=<font color=#;f1&<font color=#;f1++)&&&&&&// 三重循环对运算符穷举,f表示op[f]中的元素
&&&&&&&&&&&&&&&&&&&&&for (f2=<font color=#;f2&<font color=#;f2++)
&&&&&&&&&&&&&&&&&&&&&&&for (f3=<font color=#;f3&<font color=#;f3++)&&// 运算符 f1,f2,f3
&&&&&&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&// 对运算优先级直接列举(5种)
//-----------未用循环,直接穷举三个运算符的优先级: 3!-1=5种( 3*2-1=5)-------------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&double t1,t2,t3;&&&&&&// 存放计算的中间值&&两个两个按优先级进行计算
&&&&&&&&&&&&&&&&&&&&&&&&&&&// 第1种情况&&((a 。b)。c)。d&&:
&&&&&&&&&&&&&&&&&&&&&&&&&&&t1=cal(v[i1],v[i2],f1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t2=cal(t1,v[i3],f2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t3=cal(t2,v[i4],f3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&if (isEqual(t3,result))&&& // 将24改成result
&&&&&&&&&&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&char *fs=&((%d%c%d)%c%d)%c%d=%d\n&;&&//将24改成%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&printf(fs,v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4],result); //增加resul参数 ,对应增加的%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&count++;
&&&&&&&&&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&&&&&&&&&&// 第2种情况(a 。b)。(c。 d) 开始计算 :
&&&&&&&&&&&&&&&&&&&&&&&&&&&t1=cal(v[i1],v[i2],f1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t2=cal(v[i3],v[i4],f3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t3=cal(t1,t2,f2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&if (isEqual(t3,result))&&&&&&// 将24改成result
&&&&&&&&&&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&char *fs=&(%d%c%d)%c(%d%c%d)=%d\n&;&&//将24改成%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&printf(fs,v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4],result);//增加resul参数 ,对应增加的%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&count++;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&// 第3种情况 (a。(b。c))。d&&开始计算 :
&&&&&&&&&&&&&&&&&&&&&&&&&&&t1=cal(v[i2],v[i3],f2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t2=cal(v[i1],t1,f1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t3=cal(t2,v[i4],f3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&if (isEqual(t3,result))&&& // 将24改成result
&&&&&&&&&&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&char *fs=&(%d%c(%d%c%d))%c%d=%d\n&;&&//将24改成%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&printf(fs,v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4],result);//增加resul参数 ,对应增加的%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&count++;
&&&&&&&&&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&&&&&&&&&&// 第4种情况&&a。((b。c)。d ) 开始计算:
&&&&&&&&&&&&&&&&&&&&&&&&&&&t1=cal(v[i2],v[i3],f2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t2=cal(t1,v[i4],f3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t3=cal(v[i1],t2,f1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&if (isEqual(t3,result))&&& // 将24改成result
&&&&&&&&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&char *fs=&%d%c((%d%c%d)%c%d)=%d\n&;&&//将24改成%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&printf(fs,v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4],result);//增加resul参数 ,对应增加的%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&count++;
&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&// 第5种情况 a。(b。(c。d)) 开始计算:
&&&&&&&&&&&&&&&&&&&&&&&&&&&t1=cal(v[i3],v[i4],f3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t2=cal(v[i2],t1,f2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t3=cal(v[i1],t2,f1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&if (isEqual(t3,result))&&& // 运算后是否为result
&&&&&&&&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&char *fs=&%d%c(%d%c(%d%c%d))=%d\n&;&&//将24改成%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&printf(fs,v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4],result);//增加resul参数 ,对应增加的%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&count++;
&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&& }
等 级:新手上路
帖 子:10
求大神 请教一下
来 自:李掌柜
等 级:版主
威 望:21
帖 子:1180
专家分:4977
&&得分:10&
你的问题和你的代码让我感到迷惑
结合你的问题及代码
xoxoxox=xx
o表示+,-,*,/;
xx表示运算结果
如果运算符除了o还有小括号();
穷举法求x x x x的排序组合有多少个
long long kiss good bye
等 级:新手上路
帖 子:10
回复 4楼 hjx1120
差不多就是这个意思,要求能穷举出所有的排序。四则运算也包含小括号
等 级:小飞侠
帖 子:566
专家分:2620
&&得分:10&
楼主的几万种组合是怎么算出来的?有那么多吗?在abcd位置不变的情况下,我觉得只有4*4*3共48种组合。
[ 本帖最后由 边小白 于
23:21 编辑 ]
等 级:新手上路
帖 子:10
回复 6楼 边小白
这个可能是我的理解错误,如何优化这个程序的算法,达到排除部分重复的结果式,例如某些带括号的式子与不带括号的式子重复了,要排除这些部分重复的式子。
等 级:小飞侠
帖 子:566
专家分:2620
以每个数字前的正括号计:a出现的情况是1无括号、2一个套2个数字的括号、3一个套3个数字的括号、4括号套括号共4种情况。b同a,但b大于0的情况只能和a为0的情况共存。c只存在0、1两种情况。d不可能有正括号。这种思路正确否?
等 级:新手上路
帖 子:10
回复 8楼 边小白
就是例如1+1+1+1 等同于 1+((1+1)+1) 这种&&,两个式子表达的概念都是一样,结果也是一样,我要的就是排除这重复的式子的解决办法。源代码发楼下
等 级:新手上路
帖 子:10
程序代码:#include&stdio.h&&&&
#include&string.h&
#include&stdlib.h&
const char serial[][<font color=#] = {&①&, &②&, &③&, &④&};//通过数组显示序号
int input(int x)
&&& int flag,i;
&&& char t[<font color=#];&&//先采用字符串输入 限定输入的每一位都在1~1000之间,保证输入的是数字、避免输入的是字母或者其他字符
&&&&&&&&flag=<font color=#;&&&
&&&&&&&&fflush(stdin);&&&&&&&&&&&&//功能:清空输入缓冲区,通常是为了确保不影响后面的数据读取
&&&&&&&&gets(t);
&&&&&&&&for(i=<font color=#;(size_t)i&strlen(t);i++)&&& //strlen函数,其功能是求字符串长度
&&&&&&&&&&&&if(t[i]&'<font color=#' ||t[i]&'<font color=#')
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& flag=<font color=#;&&&&&&&&&&&&&&&&&&&&&&&&//定义的标示
&&&&&&&&&&&&&&& printf(&输入有误,请重新输入\n&& %s:&, serial[x]);
&&&&&&&&&&&&&&& break;
&&&&&&&&&&&&}&&&&&&
&&&&&&&&if(!flag)
&&&&&&&&&&&&m=atoi(t);//C语言库函数名atoi功能: 把字符串转换成整型数得到全局n的值
&&&&&&&&&&&&&&&if(m&=<font color=#||m&=<font color=#0)&&
&&&&&&&&&&&& {
&&&&&&&&&&&&&&& printf(&输入有误,请重新输入\n&& %s:&, serial[x]);
&&&&&&&&&&&&&&& flag=<font color=#;&&
&&&&&&&&&&&&}
&&& }while(flag);
&&& return
//**************************输入输出定义********************************//
double&&cal(double a,double b,int op)&&&&&&// op: 0:+,1:-,2:*,3:/运算的优先级
&&&&&&&&switch (op)&&&&&&&&&&&&&&&&&&&&&&&&// +-x 运算
&&&&&&&&&{
&&&&&&&&&&&case <font color=#:&&return(a+b);
&&&&&&&&&&&case <font color=#:&&return(a-b);
&&&&&&&&&&&case <font color=#:&&return(a*b);
&&&&&&&&&}
&&&&&&&&if (b==<font color=#.0)&&&&&&&&&&&&&&&&&&&&&&&//&&考虑分母为0
&&&&&&&&&&&&return(<font color=#.0);
&&&&&&&&else&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //否则进行除法运算
&&&&&&&&&&&&return(a/b);
//在运算过程中除法的特殊性——除数不能为零。因为可能会用到除法,所以要考虑精度问题
//这里通过结果减去输入数取绝对值与一个接近0的小数(如0.001)比较,如小于它,即可判定结果是输入数。
int&&& isEqual(double d1,double d2)&&&&&&&&&&&// 两个双精度浮点数是否近似相等&&&//isEqual函数功能是判断若干个给定的数组容量是否是相等的
&&&&&&&&double d=d1-d2;&&&&&&&&&&&&&&&&&&&&&&&&//两个数做差取绝对值然后跟指定的精度进行比较
&&&&&&&&if (d&<font color=#) d=-d;&&&&&&&&&&&&&&&&&&&&&&&&// 求绝对值
&&&&&&&&return(d&=<font color=#.001);&&&&&&&&&&&&&&&&&&&&&//返回为1或者0 取决于d&=0.001是否成立。若成立则返回1,即判定预算结果等于输入值
/**************************计算result*************************/
void&&&D24(int v[], int result)&&&&&&&&& // 穷举法求结果,增加变量result
&&&&&& char op[<font color=#]={'+','-','*','/'};&&&&&&&&&&&& //&&+:0&&-:1 *:2&&/:3
&&&&&& int count=<font color=#;// 计数成功次数
&&&&&& int i1,i2,i3,i4;
&&&&&& int f1,f2,f3;
//-----------四重循环开始穷举四个数字的位置: 4!=24 种&&A44--------------------------
&&&&&& for (i1=<font color=#;i1&<font color=#;i1++)&&&&&&&&&&&&&&&&&&//i表示v[i]下标的位置 i1 i2 i3 i4不能相等(分别为0 1 2 3)&&表示4个数排列在数组4个不同的位置上
&&&&&&&&for (i2=<font color=#;i2&<font color=#;i2++)&&&&&&&&&&&&&&&&&// 四重循环对四个数穷举
&&&&&&&&& if (i2!=i1)
&&&&&&&&& for (i3=<font color=#;i3&<font color=#;i3++)
&&&&&&&&&&&&if (i3!=i2 && i3!=i1)
&&&&&&&&&&&&for (i4=<font color=#;i4&<font color=#;i4++)
&&&&&&&&&&&&&&&if (i4!=i3 && i4!=i2 && i4!=i1)
&&&&&&&&&&&&&&&&&{
//-----------三重循环开始穷举三个运算符: 4X4X4=64 种 +-*/可以重复使用---------------------------
&&&&&&&&&&&&&&&&&& for (f1=<font color=#;f1&<font color=#;f1++)&&&&&&// 三重循环对运算符穷举,f表示op[f]中的元素
&&&&&&&&&&&&&&&&&&&&&for (f2=<font color=#;f2&<font color=#;f2++)
&&&&&&&&&&&&&&&&&&&&&&&for (f3=<font color=#;f3&<font color=#;f3++)&&// 运算符 f1,f2,f3
&&&&&&&&&&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&&&&&&// 对运算优先级直接列举(5种)
//-----------未用循环,直接穷举三个运算符的优先级: 3!-1=5种( 3*2-1=5)-------------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&double t1,t2,t3;&&&&&&// 存放计算的中间值&&两个两个按优先级进行计算
&&&&&&&&&&&&&&&&&&&&&&&&&&&// 第1种情况&&((a 。b)。c)。d&&:
&&&&&&&&&&&&&&&&&&&&&&&&&&&t1=cal(v[i1],v[i2],f1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t2=cal(t1,v[i3],f2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t3=cal(t2,v[i4],f3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&if (isEqual(t3,result))&&& // 将24改成result
&&&&&&&&&&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&char *fs=&((%d%c%d)%c%d)%c%d=%d\n&;&&//将24改成%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&printf(fs,v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4],result); //增加resul参数 ,对应增加的%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&count++;
&&&&&&&&&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&&&&&&&&&&// 第2种情况(a 。b)。(c。 d) 开始计算 :
&&&&&&&&&&&&&&&&&&&&&&&&&&&t1=cal(v[i1],v[i2],f1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t2=cal(v[i3],v[i4],f3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t3=cal(t1,t2,f2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&if (isEqual(t3,result))&&&&&&// 将24改成result
&&&&&&&&&&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&char *fs=&(%d%c%d)%c(%d%c%d)=%d\n&;&&//将24改成%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&printf(fs,v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4],result);//增加resul参数 ,对应增加的%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&count++;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&// 第3种情况 (a。(b。c))。d&&开始计算 :
&&&&&&&&&&&&&&&&&&&&&&&&&&&t1=cal(v[i2],v[i3],f2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t2=cal(v[i1],t1,f1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t3=cal(t2,v[i4],f3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&if (isEqual(t3,result))&&& // 将24改成result
&&&&&&&&&&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&char *fs=&(%d%c(%d%c%d))%c%d=%d\n&;&&//将24改成%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&printf(fs,v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4],result);//增加resul参数 ,对应增加的%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&count++;
&&&&&&&&&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&&&&&&&&&&// 第4种情况&&a。((b。c)。d ) 开始计算:
&&&&&&&&&&&&&&&&&&&&&&&&&&&t1=cal(v[i2],v[i3],f2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t2=cal(t1,v[i4],f3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t3=cal(v[i1],t2,f1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&if (isEqual(t3,result))&&& // 将24改成result
&&&&&&&&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&char *fs=&%d%c((%d%c%d)%c%d)=%d\n&;&&//将24改成%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&printf(fs,v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4],result);//增加resul参数 ,对应增加的%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&count++;
&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&// 第5种情况 a。(b。(c。d)) 开始计算:
&&&&&&&&&&&&&&&&&&&&&&&&&&&t1=cal(v[i3],v[i4],f3);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t2=cal(v[i2],t1,f2);
&&&&&&&&&&&&&&&&&&&&&&&&&&&t3=cal(v[i1],t2,f1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&if (isEqual(t3,result))&&& // 运算后是否为result
&&&&&&&&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&char *fs=&%d%c(%d%c(%d%c%d))=%d\n&;&&//将24改成%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&printf(fs,v[i1],op[f1],v[i2],op[f2],v[i3],op[f3],v[i4],result);//增加resul参数 ,对应增加的%d
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&count++;
&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&& }
//-------------- 穷举结束---------------------------
&&&&&&&&&&&&&&& if (count==<font color=#)
&&&&&&&&&&&&&&&&&&&&printf(&\n抱歉,无法算出结果%d\n\n\n&, result);
&&&&&&&&&&&&&&& else
&&&&&&&&&&&&&&&&&&&&printf(&\n共找到 %d 条算式\n\n\n&,count);
int main()
&&&&&&&&int i, result, v[<font color=#];
&&&&&&&&char
&&&&&&&&do{
&&&&&&&&&&&&printf(&\t\t\t*************************************\n &);
&&&&&&&&&&&&printf(&\t\t\t*&&&&&& 计算指定数值的问题程序&&&&&&*\n&);
&&&&&&&&&&&&printf(&\t\t\t*************************************\n &);
&&&&&&&&&&&&
&&&&&&&&&&&& printf(&输入四个整数(1,1000)之间:\n&);
&&&&&&&&&&&&&&&for(i = <font color=#; i & <font color=#; i++)
&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&printf(&&& %s:&, serial[i]);
&&&&&&&&&&&&&&& v[i] = input(i);
&&&&&&&&&&&&}
&&&&&&&&&&&&printf(&您所输入的四个整数分别为:%d&&%d&&%d&&%d\n&,v[<font color=#],v[<font color=#],v[<font color=#],v[<font color=#]);
&&&&&&&&&&&&printf(&输入想求得的结果:&);
&&&&&&&&&&&& scanf(&%d&, &result);&&& //增加的结果输入语句
&&&&&&&&&&&& D24(v, result);&&&&&&&&&&&//增加的参数result
&&&&&&&&&&&&printf(&是否继续?y/n\n&&&);
&&&&&&&&&&&&fflush(stdin);
&&&&&&&&&&&& scanf(&%c&,&c);
&&&&&&&&&&&&while(c!='y'&&c!='n')
&&&&&&&&&&&&{
&&&&&&&&&&&&&&printf(&输入有误请选择y或者n\n&&&);
&&&&&&&&&&&&&&fflush(stdin);&&&&&&&&& //功能:清空输入缓冲区,通常是为了确保不影响后面的数据读取
&&&&&&&&&&&&&&scanf(&%c&,&c);
&&&&&&&&&&&&}
&&&&&&&&}while(c=='y');
&&&&&&&&printf(&--------------------------------再见--------------------------\n&);
&&&&&&&&return <font color=#;
版权所有,并保留所有权利。
Powered by , Processed in 0.032360 second(s), 9 queries.
Copyright&, BCCN.NET, All Rights Reserved求大神详解,数学题, 100 94 90 83 82 ( ) 74 求解!_百度知道
求大神详解,数学题, 100 94 90 83 82 ( ) 74 求解!
提问者采纳
100,94,90,83,82,78,74100+83=18394+82=17690+78=16883+74=157看到没,以上各数相差7、8、9;7、8、9是等差数列。
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
来自团队:
其他类似问题
为您推荐:
数学题的相关知识
其他2条回答
多谢了,但是你的答案,慢了一丢丢啦,所以对不起啦
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用网银充1000Q币需要多少钱、求解!求大神帮助_百度知道
用网银充1000Q币需要多少钱、求解!求大神帮助
具体怎么算的、打几折呢?
我有更好的答案
网银是91折 你充1000QB 即1000RMB 只要910RMB就可以了 希望我的回答能帮助到您 望采纳
是打91折,就是910元充1000Q币。
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁大神求解_百度知道
问题描述:设有学生结构体struct stud{
int dailyG
double endA};建立一个输出流ofstream os,键盘输入若干个学生的数据,写到一个文件stud.txt中,输入Ctrl-Z输入结束;再建立一个输入流ifstream is, 把stud.txt中的信息加载到内存,再显示到屏幕上。注意总评的计算结果也要写入文件。上传的文件包括数据文件和源程序。总评=dailygrade*.20 + midgrade*.30+endgrade*.50输入样例:input grades please: Ctrl-Z to finishaaaaaaaaa 001 78 56 66bbbbbbbbb 002 89 78 76ccccccccc 003 99 88 90ddddddddd 004 99 77 93^Z输出样例aaaaaaaaa 001 78 56 66 65.4bbbbbbbbb 002 89 78 76 79.2ccccccccc 003 99 88 90 91.2ddddddddd 004 99 77 93 89.4
提问者采纳
#include&&iostream&#include&&fstream&#include&&string&using&namespace&struct&stud{&&&&&char&name[100];&&&&&char&num[50];&&&&&int&dailyG&&&&&int&midG&&&&&int&endG&&&&&double&endA&};&int&main(){&&&&cout&&&&&input&grades&please:&Ctrl-Z&to&finish&&&&&&&&&&stud&&student[100];&&&&memset(&student,&0,&sizeof(student));&&&&int&nCount&=&0;&&&&while&(nCount&&&100)&&&&{&&&&&&&&cin&&&&student[nCount].name&&&&student[nCount].num&&&&&&&&&&&&&&&&student[nCount].dailyGrade&&&&student[nCount].midGrade&&&&&&&&&&&&&&student[nCount].endG&&&&&&&&student[nCount].endAverage&=&student[nCount].dailyGrade&*0.2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+&student[nCount].midGrade&*0.3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+&student[nCount].endGrade&*0.5;&&&&&&&&nCount++;&&&&}&&&&ofstream&&&&&os.open(&stud.txt&,&ios::binary&|&ios::out);&&&&for&(int&i&=&0;&i&&&nC&i++)&&&&{&&&&&&&&char&szBuf[1024]&=&{0};&&&&&&&&if&(0&==&strlen(student[i].name))&&&&&&&&{&&&&&&&&&&&&&&&&&&&&}&&&&&&&&sprintf(szBuf,&&%s&%s&%d&%d&%d&%0.1f\n&,&student[i].name&&&&&&&&&&&&,&student[i].num,&student[i].dailyGrade,&&&&&&&&&&&&student[i].midGrade,&student[i].endGrade,&&&&&&&&&&&&student[i].endAverage);&&&&&&&&printf(szBuf);&&&&&&&&os.write(szBuf,&strlen(szBuf));&&&&}&&&&os.close();&&&&return&0;}结果如下:
提问者评价
来自:求助得到的回答
来自团队:
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求大神求解_百度知道
求大神求解
36.某运输集团公司预计全年需要外购轮胎10 000条,单位储存保管费用为20元,每次采购费用为1 000元。要求:计算该公司轮胎的最佳采购批量及相应的存货费用。36、最佳采购批量=(2*单位订货成本*年用量&#47;单位存储成本)^0.5=(2*&#47;20)^0.5=1000(条)存货费用=20*=10000(元)。。。。存货费用我算的是20000,不懂的是为什么要除以2?求解
我有更好的答案
首先,我们要清楚存货数量是随着时间递减的。为了说明问题,我们将问题简化一下,假设每天需要消耗100条轮胎,那么,第一天则是900条存货,第二天是800条存货,第三天是700条存货,依次类推,存货越来越少,那么存货费用相应的也是越来越少,因此,我们计算的是存货的平均费用。利用数学知识可以推导出平均费用=单位存储费用*最佳采购批量/2,具体推导过程就不说了,有兴趣可以查阅相关数学资料。
因存储成本是用平均存货量*单位储存来计算的,所以除以2。
我还是不明白。我考的财务管理学没有这样的公式。年存货总费用=采购总量&#47;最低采购批次*采购费用+最低采购批次&#47;2*保管费用
你学的财务管理学相关存货成本---储存成本是啥公式?储存成本计算基于假设货物全库存或全发出,所以综合平均考虑&#47;2,作为计算储存成本的依据。你所列公式即订货成本+存储成本之和,两者的最低和即为最佳。
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 大神手机官网 的文章

 

随机推荐