### Pyramid Calculations

Hi, i'm trying to make a program that does the required calculations to show the following:

 ``` 9*9+7=88 98*9+6=888 987*9+5=8888 9876*9+4=88888 98765*9+3=888888 987654*9+2=8888888 9876543*9+1=88888888 98765432*9+0=888888888 ```

this is what i've made so far:

 ``123456789101112`` `````` int i=0,j=0,k=8,s=0; for(i=1;i<9;i++) { s=9; for (j=1;j<=i;j++) { printf("%d",s); s--; } k--; printf("\n"); }``````

it only prints the

 ```9 98 987 9876 98765 987654 9876543 98765432```

but it's impossible to calculate them, so if anyone got a solution..

You're printing one digit at a time. You need to calculate the first term by multiplying it by 10 and adding the third term + 1 each time thorugh the loop.
 ``12345678910111213`` ``````#include #include int main (void) { int t1=9, t2=9, t3, x; for (t3=7; t3>=0; t3--) { x = t1 * t2 + t3; printf("%9d * %d + %d = %d\n", t1, t2, t3, x); t1 = t1 * 10 + (t3+1); } system ("pause"); }``````

 ``1234567`` ``````for ( int i = 7, x = 0; i >= 0; i-- ) { const int N = 9; const int base = 10; x = base * x + N + i - 7; std::cout << std::setw( i ) << "" << x << '*' << N << '+' << i << '=' << x * N + i << std::endl; }``````
The following is a small/simple equation to outline this.
a*b+c = d;

Observations:
a: Each digit value is one less than the preceding digit.
b: Always equal to 9
c: Always decremented by one per line
d: All digits are always 8. Each following line has one more digit than the previous.

Try to take it from here. I'd give you more help, but I'm not sure if you mean that you need to mathematically do the calculations, or if you just need to make a function which outputs the given text.
i have found it too ^^

 ``123456789`` ``````int i=0, k=8, j=0, F=9, R=0; for (i=8;i>=1;i--) { k--; for (j=k;j>=0;j--) { printf(" "); } R=F*9+k; printf("%d*9+%d=%d \n",F,k,R); F=F*10+i; } ``````

thank you guys :)
Last edited on
Topic archived. No new replies allowed.