|
Message Removed
modified 21-Jun-23 5:19am.
|
|
|
|
|
(20*23) + (25*28) + (30*33) + (35*38) +...........+ (m*(m-3)) what is the c programmimg code of the summetion of this series
|
|
|
|
|
What have you tried? Can you write the code for evaluating a single term?
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
You can see the sequence, which uses m*(m+3) not minus:
1. Set m = 20
2. Multiply m by (m + 3)
3. Add the result to the running total
4. Add 5 to m
5. Goto 2.
|
|
|
|
|
M=23 uses (m*(m-3)) or ((m-3)*m)
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
If m is the first operand, as in (20 * 23) then the formula is m*(m+3) . Why would you read it the other way round, or am I missing something mathematical?
|
|
|
|
|
You substituted (M*(M+3)) for (M*(m-3)).
I'm simply reading what the OP "posted".
I'm the one that's missing something regarding you changing it.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
I did not substitute, I corrected. It's pretty obvious that the questioner made a mistake and typed the wrong sign.
|
|
|
|
|
|
That is just a copy of the original question. What is your point?
|
|
|
|
|
|
My presumption would be that OP did not transcribe it correctly.
The sequence as suggested by the dots, rather than the explicit terms, is not defined as it is posted. But is defined with the suggested correction.
|
|
|
|
|
Looks like homework for recursion. So look up recursion examples and then modify those.
|
|
|
|
|
And then we'll see the post which says, "my program fails with stack overflow" ...
|
|
|
|
|
Well presumably the teacher will provide inputs that do not lead to that.
|
|
|
|
|
Never presume. 
|
|
|
|
|
I would however presume that if the teacher is teaching recursion and then assigns the above problem then the teacher is going to expect a code that does recursion. Whether it causes a stack overflow is outside the bounds of what the teacher is teaching. Although perhaps a teacher that is clever (or trying to be clever) might even provide inputs that would cause an overflow just so the students would need to fumble about with that.
|
|
|
|
|
If what you say is true, then the student would most likely have been able to figure the answer for him/her self.
|
|
|
|
|
I don't understand your response in terms of what they could figure out?
I know that when I first learned recursion that it took about 12/18 months for me to get it after I was first taught it. I remember it specifically because I had a very 'aha' moment studying late a night when I finally understood it.
|
|
|
|
|
Anyone who seriously considers this problem for a recursive solution must be one who has just recently learned about recursion and thinks of it as a universal cure for all the ills of the programming world.
(Any 'for' loop can easily be rewritten to a recursive solution!)
|
|
|
|
|
You wouldn't use a recursive solution in real code. But if it's a homework assignment to teach the student about recursion, as jschell suggested...
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Richard Deeming wrote: But if it's a homework assignment to teach the student about recursion, as jschell suggested... ... it is a very poor choice.
When teaching, I did give my students a recursive problem statement to solve. Most of the solutions were recursive. The main point of this exercise was to, in the next round, show how some recursions could be rolled out to loops; the problem statement was selected for this specific purpose: Learning when not to use recursion, even when it looks like the straightforward, obvious solution.
I never wold give my students a 'linear' problem statement (such as the one in the subject line), hoping that they would discover 'Hey, this iteration can be reformualated as a recursive method! Let's do that!'
If I were a teacher of higher math, I might use something in that direction to teach them to identify recursive structures. But I was a programming teacher. That is very different.
|
|
|
|
|
kalberts wrote: it is a very poor choice
If in fact it is homework then it must serve some purpose.
So either the intent is to solve if using recursion or to solve it using a loop.
Would you claim that this is a good equation to teach the basics of a loop?
Would you claim that this equation would be 'better' to teach the basics of a loop versus being 'better' to teach the basics of recursion. Regardless of whether it is appropriate for either?
|
|
|
|
|
<block<u>quote class="quote"> trønderen wrote: Anyone who seriously considers this problem for a recursive solution
As I said "Looks like homework for recursion.."
But with my 40 years of development experience and numerous cases of recursion unrolling not to mention more than 30 years of formal designs and 20 of architecture...
Myself I would probably start by looking at the requirements to see why either solution was needed. Certainly in the past I have, after using all that experience, decided that a simple look up in a static data block would completely meet the needs of the application/requirements.
And of course that solution would be much more efficient than recursion or the similar unrolled version. In case you were unaware of that.
|
|
|
|
|
If you teach recursion to students, you should illustrate it, and create homework assignments, with problems suited for recursion.
Students should not, through inappropriate homework assignments, learn to use the wrong tools for the problem at hand.
So if that is the case here, the teacher should be blamed. Especially if the assignment is as suggested in the subject line, with no hint of recursion in the problem statement. A lot of problems can be described in a very concise form in recursive terms, but can easily be implemented as an iteration (and most students will not discover that and make a recursive implementation ... I speak of experience). Here is no trace of a recursive problem description.
|
|
|
|