给定1≤N≤10 18 和1≤K≤10 18 ,我该怎么做N%K 2 ?当K接近值10 18 时,K 2 (分母)超出无符号long long int的范围,因此我无法存储值K2。
答案 0 :(得分:0)
您真的不需要bigint库,因为
N % (K*K)
计算uint64_t
而不会溢出 FWIW在大多数现代编译器中,在64位模式下也有128位类型。 GCC,Clang和ICC称之为__int128
答案 1 :(得分:0)
如果 K 2 大于 N ,则 N%K 2 >等于 N 。
示例:
253%17 2 = 253%289 = 253
假设使用64位<body>
<form name="question1" onsubmit="return false;">
<legend>La première balise présente dans un fichier html doit être:</legend>
<input type="radio" id="choix1" name="Q1" value="0">
<label for="head" id="head1">head</label>
<input type="radio" id="choix2" name="Q1" value="0">
<label for="body" id="head2">body</label>
<input type="radio" id="choix3" name="Q1" value="1">
<label for="!DOCTYPE" id="head3">!DOCTYPE</label>
<input type="radio" id="choix4" name="Q1" value="0">
<label for="html" id="head4">html</label>
<button onclick="validateQuestion1(document.forms.question1.Q1)" id="valider1">Valider</button>
</form>
</body>
,则可以平方而不会溢出的最大值为2 32 -1,等于0xFFFFFFFF(或4'294'967'295)。
因此,您只需输入以下代码即可:
unsigned long long