في كلا الحالتين (double or int) البرنامج يخرج من نفسه
لذا من الأفضل عمل debug أو على الأقل وضع cout في أكثر من مكان حتى تعرفي من أين الخطأ بالضبط
كود PHP:
#include<iostream.h>
#include<math.h>
using namespace std;
void main()
{
int i;
int M[31]={0};
int n1,n2;
int sum1=0,sum2=0;
int t;
int Result;
cout<<"enter number 1\n";
cin>>n1;
cout<<"enter number 2\n";
cin>>n2;
int result;
result=n1;
i=30;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;
}
result=n2;
i=9;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;
}
for(i=31;i>=22;i--)
{
if (M[i]==0)
{
for (i=31;i>=0;i--)
M[i]=M[i-1];
}
else
{
t=0;
for (i=21;i>=10;i--)
{
sum1=(int) (M[i]*pow(t,2)+sum1);
t++;
}
t=0;
for (i=9;i>=0;i--)
{
sum2=(int) (M[i]*pow(t,2)+sum2);
t++;
}
Result=sum1+sum2;
cout<<Result;
result=Result;
i=20;
while((i>=0)&&((result)!=0))
{
M[i]=result%2;
result=result/2;
i--;
}
for (i=31;i>=0;i--)
M[i]=M[i-1];
}
}
}