请各位帮忙看看我这VFP程序填空吧,我已经检查别人问好几遍 才回答了,真是不知道错哪了

百度拇指医生
&&&普通咨询
您的网络环境存在异常,
请输入验证码
验证码输入错误,请重新输入急急急!各位大神,帮我看看这个程序哪里出错了吧_百度知道
急急急!各位大神,帮我看看这个程序哪里出错了吧
要求是【问题描述】对于一个正整数x(3≤x≤1000),寻找一种方案,将x分解成连续正整数的和。即x=x1+x2+……+xn其中x1、x2、……、xn是自小至大的连续正整数,且n&1。比如,对于输入的数字10,可以分解成“10=1+2+3+4”。如果存在多于一种的可行方案,则选取等式右边项的个数最多的那一种。比如,9可以分解为“9=2+3+4”,也可以分解为“9=4+5”。但是前一种分解成3个数的和,后一种分解成2个数的和,所以前一种是有效解。如果无法分解,则输出No Answer。#include &stdio.h&int main (){
int x,y,z,m,n,i;
scanf(&%d&,&x);
for (;i&=x&&i&0;i++)
else if (z==0)
i=i-1-(n-1);
printf(&%d=&,x);
for (m=1;m&=n;m++)
printf(&%d+&,i);
printf(&%d&,i);
珐弗粹煌诔号达铜惮扩
if (i==(z/2))
printf (&No Answer\n&);
}}为什么输入9,结果就是9=4+5呢?我不明白我哪里错了。求教!
提问者采纳
for循环中有三部分:
if (z&0),else if (z==0),els珐弗粹煌诔号达铜惮扩e第一部分功能是尝试 i+(i+1)+(i+2)+……看能否刚好等于输入值,(i第一次取值为1,从1开始)
等于 就进入第二部分:输出结果不等于 就进入第三部分:i加一个后,再回到第一部分,从新开始尝试, 【错误原因】因为i第一次在第三部分取2后,回到
for (;i&=x&&i&0;i++)又自加了一次,所以,第二次尝试是从3开始了,而不是2, 只需要把第三部分中
i=y;先后顺序调换一下就可以了虽然有点罗嗦,但能看懂吧!!!
提问者评价
谢谢谢谢,不罗嗦,表示我是菜鸟,哎,选了个计算机专业编程编的快要死了。谢谢呀!
其他类似问题
为您推荐:
其他2条回答
首先我们认识到,这是个循环遍历求解的过程(暂且这样分析求解这个问题吧!也不能否认会有高人找到规律,用递归回溯的方法解之,如果有的话请与大家分享哦,反正我考虑了很久,都没有发现捷径!)然后,我发现的一个稍微点的规律吧,能够节省一下计算量的,就是在循环的时候可以设置循环上限为(num+1)/2,证明很简单,这里略之!
我看了下你上面的代码,好像输入5也会出现问题!
你能文字描述下你的算法吗?可以进一步讨论!望追问!
我的算法如下:
0~(num+1)/2之间用两个数i,j(i&=j),通过双重循环i、j,不断取得和为num的连续自然数,
同时比较j-i与之前_j-_i大小,取较大值存入_j、_i!
直到双重循环结束,最后得到的连续自然数为_j~_i。
源码如下:
// Decompose_into_123.cpp : 定义控制台应用...
谢谢谢谢,不过不好意思,我已经选出最佳答案了,抱歉,谢谢您
选不选择最佳答案不重要,重要的是您解决问题了吗?
参考资料:
纯手打!伤不起!
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁请各位大哥大姐看看我的程序的错误,帮忙修改一下;_百度知道
请各位大哥大姐看看我的程序的错误,帮忙修改一下;
ai.51,这里是发不上了,下面是我写的程序,我想以防止关机后计数器清零,绝对没有病毒的,我用的是89S52单片机,这是51网站:不好意思啊各位,小弟不是想赖掉悬赏分的;大家放心,小弟一定双手奉上,我放到了我的个人博客里了,这里放不下那么多字节,所以就加上了一个24C02芯片来保存数据,请各位帮帮忙,但我调试的时候开机数码管上显示的乱码不知道该怎么样弄好,而且还要记数所做的产品的个数我的程序是要完成一个工装的所有动作
我有更好的答案
delay();&scl=1;1;delay();这里貌似不对delay();/i++)
{temp=temp&}
scl=0;移位操作好像都是不带进位的哦void write_byte(uchar date){
uchar i能否给个原理图看看啊~~这样光看程序很盲目 貌似我看你这个函数有点问题哦~C语言里面的&
for(i=0;i&sda=CY,
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁几道英语动词填空(我已经做完,但不知道正确与否,请各位看看)1 Tell me if your mother cooked(cook) the dinner at noon last Sunday2 No one knows what has happened(happen) there in the past few week’s time3 The accident was really terrible.But I don’t know how it happened(happen)4 The shoes have wore (wear)out .I need to buy a new pair.5 He had just fallen (fall) asleep when he heard someone knocking at the door.
°莫铭0783
第4个肯定错...wear过去式是wore,过去分词是worn! 应该是被动,the shoes have been worn out其他我觉得3好像过去完成时?!had happened.. 我也不太确定...
为您推荐:
其他类似问题
4:the shoes wore out . . .
扫描下载二维码

我要回帖

更多关于 别人问好几遍 才回答 的文章

 

随机推荐