1. ## squared digit length

hi everyone this is my code for square digit length

Code:
```#include <iostream>
using namespace std;

int main()
{
int day = 29;
int mod;
int div;
int total;
int counter = 0;
int working = ((mod * mod) + (div * div))

mod = day%10;//gives 9
div = day/10;// gives 2
total = day;

while(working != 4 || working != 1)
{
total = (mod * mod) + (div * div);

counter++;
}
cout<<counter<<endl;

system("pause");
return 0;
}```
is not working, can someone help me on this?

and i got a problem for changing the integer for day ..

2. >> int working = ((mod * mod) + (div * div))

at this point mod and div are uninitialized.

>> while(working != 4 || working != 1)

your loop makes no sense. working never gets modified so the loop becomes infinite. besides that, the assignment in the loop will always yield the same result.

3. just as you said
Code:
`int counter = 0;`
you have to say
Code:
`int mod = 0;//or whatever value`
likewise
Code:
`int div = 0;//or whatever value`

Code:
```    while(working != 4 || working != 1)
{
total = (mod * mod) + (div * div);

counter++;
}```
lets think about this....ASSUMING that div = 0 (which it doesnt) and assuming that mod = 0 (which it doesnt) ... working = (0 * 0) + (0 * 0)
working = 0

now ... after you set working = ((mod * mod) + (div * div)) ... does that value ever change after that?

4. To add to (maybe clarify) Salem's comment: the condition for the while loop will never be false.

5. can someone give me some idea on how to count the squared digit length.

for example 29 is input

and the process should be like this:

2^2 + 9^2 = 85
8^2 + 5^2 = 89
8^2 + 9^2 = 145
1^2 + 4^2 + 5^2 = 42
4^2 + 2^2 = 20
2^2 + 0^2 = 4

this loop ends when the final solution ==4 or 1, and count how many step it takes....

6. Code:
```#include <stdio.h>

int calc ( int value ) {
int result = 0;
while ( value > 0 ) {
int digit = value % 10;
result = result + digit * digit;
value = value / 10;
}
return result;
}
int main ( ) {
int num = 29;
while ( num > 10 ) {
int result = calc ( num );
printf( "%d -> %d\n", num, result );
num = result;
}
return 0;
}

\$ gcc bar.c
\$ ./a.out
29 -> 85
85 -> 89
89 -> 145
145 -> 42
42 -> 20
20 -> 4```

7. wow man.... thnx for giving full... hehe figure out myself...thnx ...

8. but how to cout the number of step ?

9. is alright, i got it ...

10. can someone explain on this part of code

Code:
```        result = result + digit * digit;
day = day / 10;```

11. Why don't you put a printf() inside the loop of that function and print each one out?