9月學(xué)習(xí)心得
#??蛣?chuàng)作賞金賽#(新手C++)
c++的變量聲明時(shí)都有固定的空間,偶爾做到可能會(huì)數(shù)據(jù)溢出的題目,我就想了個(gè)小辦法,將億位及以上的數(shù)字另開(kāi)一個(gè)變量存儲(chǔ),本來(lái)是想用數(shù)組模擬逢十進(jìn)一的,但是數(shù)組還沒(méi)學(xué)會(huì)
。
int main()
{
int f=0;
int a1,a2,b1,b2,c1,c2;
cin >> a1 >> b1;
a2 = a1 % 100000000; //低位
a1 = a1 / 100000000; //高位
b2 = b1 % 100000000;
b1 = b1 / 100000000;
//cout << a1 << a2 << b1 << b2 << endl;
b1 = b1 * 11;
b2 = b2 * 11;
//運(yùn)算
if (b2 / 100000000 != 0)
b1 += b2 / 100000000;
b2 = b2 % 100000000;
cout << b1 << b2 << endl;
c2 = a2 - b2;
c1 = a1 - b1;
//cout << c1 << c2 << endl;
//模擬進(jìn)位
while (c1 > 0 && c2 < 0)
{
c1 -= 1;
c2 += 100000000;
}
//cout << "1:" << c1 << c2 << endl;
while (c1 < 0 && c2 > 0)
{
c1 += 1;
c2 -= 100000000;
}
//cout << "1:" << c1 << c2 << endl;
//準(zhǔn)備輸出格式
if (c1 == 0)
{
cout << c2;
f = 1;
}
if (c1 > 0)
{
cout << c1;
cout << setfill('0') << setw(9) << c2; //低位補(bǔ)位
f = 2;
}
if (c2 < 0)
{
cout << c1;
cout << setfill('0') << setw(8) << -c2; //低位補(bǔ)位
f = 3;
}
//cout<<f;
}
就是這題 NC275421 <嚶嚶不想做計(jì)幾喵>
第一天花2小時(shí)沒(méi)做出來(lái),后面才想到可能是空間不夠,又花了一個(gè)半小時(shí),而且局限性很大,做乘法只能乘4位數(shù)甚至是3位數(shù)。
之后去網(wǎng)上學(xué)習(xí)了一下,發(fā)現(xiàn)有l(wèi)ong long類型
,秒了!
這道題算是完美解決了,但是還有道題 NC275612 <小紅的三倍數(shù)>,10的100次,為什么沒(méi)有l(wèi)ong long long ...
那么,就只有一個(gè)辦法了...
python!
啟動(dòng)!
c++的變量聲明時(shí)都有固定的空間,偶爾做到可能會(huì)數(shù)據(jù)溢出的題目,我就想了個(gè)小辦法,將億位及以上的數(shù)字另開(kāi)一個(gè)變量存儲(chǔ),本來(lái)是想用數(shù)組模擬逢十進(jìn)一的,但是數(shù)組還沒(méi)學(xué)會(huì)
int main()
{
int f=0;
int a1,a2,b1,b2,c1,c2;
cin >> a1 >> b1;
a2 = a1 % 100000000; //低位
a1 = a1 / 100000000; //高位
b2 = b1 % 100000000;
b1 = b1 / 100000000;
//cout << a1 << a2 << b1 << b2 << endl;
b1 = b1 * 11;
b2 = b2 * 11;
//運(yùn)算
if (b2 / 100000000 != 0)
b1 += b2 / 100000000;
b2 = b2 % 100000000;
cout << b1 << b2 << endl;
c2 = a2 - b2;
c1 = a1 - b1;
//cout << c1 << c2 << endl;
//模擬進(jìn)位
while (c1 > 0 && c2 < 0)
{
c1 -= 1;
c2 += 100000000;
}
//cout << "1:" << c1 << c2 << endl;
while (c1 < 0 && c2 > 0)
{
c1 += 1;
c2 -= 100000000;
}
//cout << "1:" << c1 << c2 << endl;
//準(zhǔn)備輸出格式
if (c1 == 0)
{
cout << c2;
f = 1;
}
if (c1 > 0)
{
cout << c1;
cout << setfill('0') << setw(9) << c2; //低位補(bǔ)位
f = 2;
}
if (c2 < 0)
{
cout << c1;
cout << setfill('0') << setw(8) << -c2; //低位補(bǔ)位
f = 3;
}
//cout<<f;
}
就是這題 NC275421 <嚶嚶不想做計(jì)幾喵>
第一天花2小時(shí)沒(méi)做出來(lái),后面才想到可能是空間不夠,又花了一個(gè)半小時(shí),而且局限性很大,做乘法只能乘4位數(shù)甚至是3位數(shù)。
之后去網(wǎng)上學(xué)習(xí)了一下,發(fā)現(xiàn)有l(wèi)ong long類型
這道題算是完美解決了,但是還有道題 NC275612 <小紅的三倍數(shù)>,10的100次,為什么沒(méi)有l(wèi)ong long long ...
那么,就只有一個(gè)辦法了...
python!
啟動(dòng)!
全部評(píng)論
相關(guān)推薦
05-07 11:38
廣州美術(shù)學(xué)院 交互設(shè)計(jì)師 點(diǎn)贊 評(píng)論 收藏
分享
點(diǎn)贊 評(píng)論 收藏
分享
04-06 22:33
西華大學(xué) 運(yùn)維開(kāi)發(fā)工程師 點(diǎn)贊 評(píng)論 收藏
分享
04-12 13:42
江南大學(xué) C++ 
點(diǎn)贊 評(píng)論 收藏
分享
點(diǎn)贊 評(píng)論 收藏
分享