求负整数的余数&格式输出

求负整数的余数

我们通常使用a%n来获得一个介于0到n-1之间的数。然而,如果a是负数,则余数a%n也将是一个负数。例如-7 % 4 等于-3。 这个结果并不是我们所期望的,因为它并不是一个介于0到3之间的数,而且它与常规的数学定义也不同。在数学中,计算余数的方法是:从a开始,加上或减去n直到一个介于0到n-1之间的数为止。例如11除以4的余数是11-4-4 = 3; -7除以4 的余数是-7+4+4 = 1, 这与 -7%4的计算结果不同。在C/C++中,为了正确地计算负数的余数,可以用下面的公式:

int rem = n - 1 - (-a - 1) % n; /* if a is negative */

例如,如果a 为 -7, n 为4,则计算结果为3 - (7 -1) % 4 = 3 - 2 = 1.

 

-------------------------------------------------------------------------------

C++格式输出

1.用控制符setw来设置输出域的宽度。例如:

cout << setw(8);


2.用控制符setprecision设置浮点数的精度. 例如:

cout << setprecision(2);


3.用fixed 固定输出的小数宽度

cout << fixed;


因为只使用控制行setprecision并不能输出小数末尾的0. 例如,0.1只能输出为0.1, 而不是0.10.

 

结合三个控制符

cout << fixed << setprecision(2) << setw(8) << x;

控制符setprecision和fixed只需使用一次,流将保持所指定的格式。然后,setw必须在每次输出时都要设定一次。

 

测试例子:


 

 

输出:

输出

 

 

--From C++核心思想(Computing Concepts with C++ Essentials)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值