loop condition

Pages: 12
Sep 4, 2013 at 12:03pm
can you guyz help me with this?

"write a program that will display the sum of even numbers and the product of
odd numbers between 1-100"

so i am assigned to do that using the while or for loops

i am wondering is it posible to make the console print it like this:

2+4+6+8+10...+98+100 = (the total sum of all even numbers)

and

1*3*5*7*9...*96*99 = (the toal prod of all odd numbers)

assuming that the ... will still display the numbers that are supposed to be
there?
Sep 4, 2013 at 12:09pm
1
2
3
4
5
6
7
8
9
10
11
int sum = 0; 
int product = 1;

for ( int i = 1; i <= 100; i++ )
{
   if ( i & 1 ) product *= i;
   else sum += i;
}

std::cout << "sum = " << sum <, std:;endl;
std::cout << "product = " << product << std::endl;
Sep 4, 2013 at 12:34pm
The product of all odd numbers between 1-100 is

2725392139750729502980713245400918633290796330545803413734328823443106201171875

and has 79 digits...

Also, the product of all even numbers between 1-100 is

34243224702511976248246432895208185975118675053719198827915654463488000000000000

and has 80 digits...
Last edited on Sep 4, 2013 at 12:42pm
Sep 4, 2013 at 12:36pm
The product of all odd numbers is going to be gigantic and will overflow a 64 bit (or 128 bit) integer, so you will need a library that allows you to represent large integers, such as http://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic or http://gmplib.org/ if you want to see your answer.
Sep 4, 2013 at 12:39pm
In fact this product is similar to factorial.The maximum number the factorial of which can be stored in an object of type int provided that the type int occupies 4 bytes is equal to 12.:)
Last edited on Sep 4, 2013 at 12:40pm
Sep 4, 2013 at 1:10pm
i think i misunderstood you or you misunderstood me XD

anyways what am i expecting in the output will be like this

2
4
.
.
.
98
100
the total sum is XX

1
3
.
.
.
96
99
the total product is XX

am expecting to see this in console as an output..

i do have "this" idea on how am i will be able to put the numbers on output but i am wondering if how am i be able to do the arithmetic operation without writing sum = 2+4+6+....+98+100... do you guyz get my point? XD
Sep 4, 2013 at 1:15pm
@xeimaster

1
3
.
.
.
96
99
the total product is XX

am expecting to see this in console as an output..


I have understood nothing. Do you understand yourself what you are writing and do you read what others already wrote?
Sep 4, 2013 at 1:21pm
oh i think we have a misunderstanding here XD anyways my real problem would be like this

i know how will i be able to display those odd and even numbers

the problem is creating the arithmetic operation for the sum and product

i mean the typical way would be i writing it like this

SUM = 2+4+6+8... till +98+100 right?

is there such a way to avoid me writing it that way? like a shortcut or somewhat?
Sep 4, 2013 at 1:33pm
i know how will i be able to display those odd and even numbers

OK - how do you do it?

the problem is creating the arithmetic operation for the sum and product

If you have an int A, and you want to add 2 to it, how do you do it?

1
2
3
4
5
int A = 3;

// what goes here?

cout << A << "\n";


5

Then generalize it!

Andy
Last edited on Sep 4, 2013 at 1:33pm
Sep 4, 2013 at 1:50pm
@xeimaster

the problem is creating the arithmetic operation for the sum and product

i mean the typical way would be i writing it like this

SUM = 2+4+6+8... till +98+100 right?

is there such a way to avoid me writing it that way? like a shortcut or somewhat?



One more do you read what was already written in the thread? I showed how the operations are performed.
Sep 4, 2013 at 1:59pm
If you want to display the number stored in an array
Sep 4, 2013 at 2:00pm
I meant to say store it using a char array
Sep 4, 2013 at 2:16pm
I completely misunderstood your question I think I Understand what you're saying. There is a way to write it like that. It's called a for loop.

example

int sum =0;
for(int i = 0; i < 20; i++)
sum += i;

So you don't have to write sum = 1+2+3...
Sep 4, 2013 at 3:31pm
You don't need a computer to find the sum of all even numbers from 2 to n; it is equal to n * (n + 2) / 4.
Sep 4, 2013 at 3:43pm
 
Last edited on Sep 4, 2013 at 3:51pm
Sep 4, 2013 at 3:45pm
You don't need a computer for a lot of things, it just sometimes saves a lot of time, plus even in cases like this, means you don't have to derive formulas.
Sep 4, 2013 at 3:55pm
Why the blank post??
Sep 4, 2013 at 7:16pm
I think i understand what you want and it is not very hard but you cod not communicate it correctly.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int sum = 0; 
int product = 1;
int i;
for ( i = 1; i <= 100; i++ )
{
   if ( i & 1 ) product *= i;
   else sum += i;
}
for ( i=2; i<100; i=i+2)
{
   cout<<i<<"+";
};
cout<<i<<"="<<sum<<endl;
for ( i=1; i<99; i=i+2)
{
   cout<<i<<"*";
};
cout<<i<<"="<<product<<endl;

I hope this is the code you want. I am sorry about the grammar , my keyboard is almost broken.
Sep 4, 2013 at 8:26pm
@fluture

Does it work this code? Especially the line 6?...
Last edited on Sep 4, 2013 at 8:29pm
Sep 4, 2013 at 8:32pm
condor, line 6 checks if i is odd (bitwise and operator).
Pages: 12