
雖然沒有用常規套路但是我覺得我寫的沒有問題,但不知道錯在哪
uj5u.com熱心網友回復:
#include <iostream>using namespace std;
int main()
{
int m,A,B;
int ans[32];
int c1=0,num;
int temp=0;
while(scanf("%d",&m),m)
{
scanf("%d %d",&A,&B);
ans[32]={0};
num=0;
do
{
temp=A%m+B%m+c1;
ans[num++]=temp%m;
c1=temp/m;
A/=m;
B/=m;
}while((A!=0&&B!=0)||c1!=0);
for(int i=num-1;i>=0;i--)
{
printf("%d",ans[i]);
}
printf("\n");
}
return 0;
}
uj5u.com熱心網友回復:
你沒有考慮超出int范圍的情況uj5u.com熱心網友回復:
2147483647+21474836472147483647不是2^31-1嗎
uj5u.com熱心網友回復:
題目是什么?uj5u.com熱心網友回復:
2147483647是2^31-1,但2147483647+2147483647=2^32-2,超過了int范圍。
另外,你這里只是2進制和8進制,如果是16進制,a-f的轉換處理遺漏了。
當然,不知道你原題的要求是什么,這里只是針對你的問題而推測的可能性。還是需要lz把題目要求描述一下。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/9526.html
標籤:C++ 語言
下一篇:一個小程式,運行不出來,求指點
