Domanda

If we have M as follows:

M = 1+2+3+5+6+7+9+10+11+13+...+n

What would be the QBasic program to find M.

I have done the following so far, but is not returning me the expected value

INPUT "ENTER A VALUE FOR N"
SUM = 0
FOR I = 1 TO N
IF I MOD 4 = 0
SUM = SUM + I
NECT I

How should I go about this?

Thanks.

È stato utile?

Soluzione

You have mixed the equality operator. Try this:

INPUT "ENTER A VALUE FOR N"
SUM = 0
FOR I = 1 TO N
IF I MOD 4 <> 0
    SUM = SUM + I
NEXT I

Altri suggerimenti

No need to write a program, or at least no need to use loops.

Sum of first n natural numbers:

sum_1 = n * (n + 1) / 2

Sum of multiples of 4 < n:

sum_2 = 4 * (n / 4) * (n / 4 + 1) / 2 = 2 * (n / 4) * (n / 4 + 1)

The result is sum_1 - sum_2:

sum = sum_1 - sum_2 = n * (n + 1) / 2 - 2 * (n / 4) * (n / 4 + 1)

NB: / = integer division

This snip calculates the sum of integers to n skipping values divisible by 4.

PRINT "Enter upper value";
INPUT n
' calculate sum of all values
FOR l = 1 TO n
    x = x + l
NEXT
' remove values divisible by 4
FOR l = 0 TO n STEP 4
    x = x - l
NEXT
PRINT "Solution is:"; x
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top