C++ help please it due tomorrow and i need help in these two questions left!
Example 1
A “magic” number is an integer in which the number is equal to the sum of the cubes of its digits. Write a program to determine whether a three digit number entered by the user is a magic number.
Example 2 (challenging)
Write a program which finds the three digit magic number with the rule from above.
Re: C++ help please it due tomorrow and i need help in these two questions left!
The first digit of a three-digit number n of type int is (n / 100), the second digit is ((n % 100) / 10) and the third one is (n % 10).
To find the magic number, it is possible to search through all three-digit numbers. On modern computers, this is instantaneous.
Re: C++ help please it due tomorrow and i need help in these two questions left!
how will i put it in code?
am new so i don't understand it that easy....plz can you show me the code how it will be?
Re: C++ help please it due tomorrow and i need help in these two questions left!
I won't show the full code, particularly since this is an assignment. But I don't understand your difficulty. Here is an outline.
0. It is recommended to declare a function that returns the cube of its argument.
int cube(int n) { return n * n * n; }
1. Declare a variable n of type int.
2. Read a value from the standard input (cin in C++) to n.
3. Write an if-statement. I showed how to get individual digits of n. If n equals cube(first digit) + cube(second digit) + cube(third digit), then output a corresponding string to the standard output (cout).
You should look at examples in your sources to see how to write input/output, arithmetic and if statements.
Re: C++ help please it due tomorrow and i need help in these two questions left!
no its not an assignment! its practice questions.
Re: C++ help please it due tomorrow and i need help in these two questions left!
Hi,
Since this was just practice, I've attached a complete answer to the 2nd question. (You may not have covered functions yet, but surely you must know about loops. Otherwise, I don't see a simple way to find the 3 digit magic numbers.) Since this is a math forum, I pose the following questions:
1. The program found 153, 370, 371 and 407. Prove (maybe with the help of a program) that these are the only integers of any number of digits (>1) with the property that the sum of the cube of the digits is equal to the integer. "Easy."
2. Extend the idea of magic to integers with k digits by saying it is magic iff the sum of the kth powers of the digits is the integer. Prove that for any k, there is a k digit magic number. I think this is hard; I don't have a clue.
The 6 digit integer 548834 has the sum of the 6th powers of the digits equal to itself.
Here's the program:
#include <iostream>
int isMagic(int,int);
int integerPow(int,int);
int main(void) {
int first,last,power=6;
first=integerPow(10,power-1);
last=10*first;
int i;
for (i=first;i<last;i++) {
if (isMagic(i,power)) {
cout<<i<<"is magic for powers"<<power<<endl;
}
}
return(0);
}
// finds and returns b to the k power, could use standard pow, but this is a double
int integerPow(int b,int k) {
int value=1,i;
for (i=1;i<=k;i++) {
value*=b;
}
return(value);
}
// returns true (1) iff sum of the kth power of digits of n is same as n
int isMagic(int n,int k) {
int m=n, digitPowerSum=0,digit;
while (m!=0) {
digit=m%10;
m=(m-digit)/10;
digitPowerSum+=integerPow(digit,k);
}
return(n==digitPowerSum);
}