9月学习心得

#牛客创作赏金赛#(新手C++)
  c++的变量声明时都有固定的空间,偶尔做到可能会数据溢出的题目,我就想了个小办法,将亿位及以上的数字另开一个变量存储,本来是想用数组模拟逢十进一的,但是数组还没学会
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;
                                                     //运算
if (b2 / 100000000 != 0)
b1 += b2 / 100000000;
b2 = b2 % 100000000;
cout << b1 << b2 << endl;
c2 = a2 - b2;
c1 = a1 - b1;
//cout << c1 << c2 << endl;

                                                             //模拟进位
while (c1 > 0 &amp;&amp; c2 < 0)
{
c1 -= 1;
c2 += 100000000;

}
//cout << &quot;1:&quot; << c1 << c2 << endl;
while (c1 < 0 &amp;&amp; c2  > 0)
{
c1 += 1;
c2 -= 100000000;

}
//cout << &quot;1:&quot; << c1 << c2 << endl;
                                                  //准备输出格式
if (c1 == 0)
{
cout << c2;
f = 1;
}

if (c1 > 0)
{
cout << c1;
cout << setfill('0') << setw(9) << c2;      //低位补位
f = 2;

}

if (c2 < 0)
{
cout << c1;
cout << setfill('0') << setw(8) << -c2;     //低位补位
f = 3;

}

//cout<<f;

}
就是这题 NC275421 <嘤嘤不想做计几喵>
第一天花2小时没做出来,后面才想到可能是空间不够,又花了一个半小时,而且局限性很大,做乘法只能乘4位数甚至是3位数。
之后去网上学习了一下,发现有long long类型,秒了!
这道题算是完美解决了,但是还有道题 NC275612 <小红的三倍数>,10的100次,为什么没有long long long ...
那么,就只有一个办法了...

python!

启动!
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务