Joined: Wed May 27, 2009 12:20 am Posts: 1 Location: lebanon Has thanked: 0 time Have thanks: 0 time
i an trying to solve a problem that has a no. "abc", if we make the cubic power for each digit of the number, then add the results, it should give the same number "abc" as above im using the C language and need some help to execute my program here are the codes i used :
Joined: Tue Mar 27, 2007 10:55 pm Posts: 2101 Location: Earth Has thanked: 39 time Have thanks: 56 time
I really don't understand your problem .But it is seems interesting can you clear it more .
_________________ Currenlty programming with : java , html , php , and javascript . (OCJP-6 certified )
biskot188
Question subject: Re: cubic power for each digit
Posted: Sun Aug 30, 2009 8:25 pm
Joined: Fri Nov 21, 2008 6:18 pm Posts: 51 Location: thessaloniki Has thanked: 0 time Have thanks: 2 time
what compiler you are using in order to understand and help you to execute your programme each one has its own execution methods in some you might need to add some specified libraries;)
_________________ if you want make an effort yourself no one will make it for you... best regards
apeter
Question subject: Re: cubic power for each digit
Posted: Thu Nov 04, 2010 4:04 pm
Joined: Wed Nov 03, 2010 3:48 pm Posts: 4 Has thanked: 0 time Have thanks: 1 time
Hi cutedevils,
quite late, but here it is.
To face the picture: You want to know, which three-digit-number is equal to the sum of the cubic-power of its digits. so abc = a^3 + b^3 + c^3.
A few words to C/C++.
Neither C nor C++ are having a power operator ^ like Basic. But the operator ^ does exist. It is the XOR operator.
The line c == i^3 is syntactically correct but does nothing. Its meaning is: compare c to (i XOR 3). But the result of this comparison is discarded because it isn't assigned to any variable.
Your summing code is at the wrong position. It is executet after all loops. It will only be executed for the i = 4, j = 4 and k = 4.
The comparison if(sum=i*100+j*10+k) will always evaluate to true. Because the comparison is done with "==". The meaning of your line is: assign (i*100+j*10+k) to s and test if s is unequal to zero. Yes, the if statement is quite confusing in C/C++.
A corrected version looks like this:
Code:
#include <stdio.h>
int main() { int i, j, k; int c, d, e; int sum = 0;
for (i = 1; i < 10; i++) { for (j = 1; j < 10; j++) { for (k = 1; k < 10; k++) { c = i*i*i; d = j*j*j; e = k*k*k; sum = c + d + e; if (sum == (i*100 + j*10 + k)) { printf("%d%d%d = %d^3 + %d^3 + %d^3 = %d + %d + %d\n", i,j,k,i,j,k,c,d,e); } } } } return 0; }