#include <bits/stdc++.h>
using namespace std;
// A modified version of Lightness Races in Orbit's code given here: http://stackoverflow.com/a/37861479/3555000
// I thank Lightness Races in Orbit for the contribution
void print_binary(long double y)
{
const long double x = y;
unsigned char a[sizeof(long double)];
copy(
reinterpret_cast<const unsigned char*>(&x),
reinterpret_cast<const unsigned char*>(&x) + sizeof(long double),
&a[0]
);
for (auto el : a)
{
bitset<8>k(el);
cout << k.to_string() ;
}
cout << endl;
}
int main()
{
int a[] = {20,29,31}, res=0;
for(int i = 0; i<3; i++)
{
cout<<"i = "<<i<< ", a["<<i<< "] = "<<a[i]<<"\npow(" << a[i] <<","<<i+1 << "):\nBinary: ";
long double temp = pow(a[i],i+1);
print_binary(temp);
res+=temp;
cout<<setprecision(50)<<fixed<< "Decimal: " <<temp <<", Result = "<<res<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vIEEgbW9kaWZpZWQgdmVyc2lvbiBvZiBMaWdodG5lc3MgUmFjZXMgaW4gT3JiaXQncyBjb2RlIGdpdmVuIGhlcmU6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM3ODYxNDc5LzM1NTUwMDAKLy8gSSB0aGFuayBMaWdodG5lc3MgUmFjZXMgaW4gT3JiaXQgZm9yIHRoZSBjb250cmlidXRpb24Kdm9pZCBwcmludF9iaW5hcnkobG9uZyBkb3VibGUgeSkKewogICAgY29uc3QgbG9uZyBkb3VibGUgeCA9IHk7CiAgICB1bnNpZ25lZCBjaGFyICAgICBhW3NpemVvZihsb25nIGRvdWJsZSldOwoKICAgIGNvcHkoCiAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oJngpLAogICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KCZ4KSArIHNpemVvZihsb25nIGRvdWJsZSksCiAgICAgICAgJmFbMF0KICAgICk7CiAgICBmb3IgKGF1dG8gZWwgOiBhKQogICAgewogICAgICAgIGJpdHNldDw4PmsoZWwpOwogICAgICAgIGNvdXQgPDwgay50b19zdHJpbmcoKSA7CiAgICB9CgogICAgY291dCA8PCBlbmRsOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBhW10gPSB7MjAsMjksMzF9LCByZXM9MDsKICAgIGZvcihpbnQgaSA9IDA7IGk8MzsgaSsrKQogICAgewogICAgICAgIGNvdXQ8PCJpID0gIjw8aTw8ICIsIGFbIjw8aTw8ICJdID0gIjw8YVtpXTw8IlxucG93KCIgPDwgYVtpXSA8PCIsIjw8aSsxIDw8ICIpOlxuQmluYXJ5OiAiOwogICAgICAgIGxvbmcgZG91YmxlIHRlbXAgPSBwb3coYVtpXSxpKzEpOwogICAgICAgIHByaW50X2JpbmFyeSh0ZW1wKTsKICAgICAgICByZXMrPXRlbXA7CiAgICAgICAgY291dDw8c2V0cHJlY2lzaW9uKDUwKTw8Zml4ZWQ8PCAiRGVjaW1hbDogIiA8PHRlbXAgPDwiLCBSZXN1bHQgPSAiPDxyZXM8PGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=
i = 0, a[0] = 20
pow(20,1):
Binary: 000000000000000000000000000000000000000000000000000000001010000000000011010000000000000000000000
Decimal: 20.00000000000000000000000000000000000000000000000000, Result = 20
i = 1, a[1] = 29
pow(29,2):
Binary: 000000000000000000000000000000000000000000000000010000001101001000001000010000000000000000000000
Decimal: 841.00000000000000000000000000000000000000000000000000, Result = 861
i = 2, a[2] = 31
pow(31,3):
Binary: 000000000000000000000000000000000000000000000000101111101110100000001101010000000000000000000000
Decimal: 29791.00000000000000000000000000000000000000000000000000, Result = 30652