L1-046 整除光棍 (20分)
題目:
這裡所謂的“光棍”,並不是指單身汪啦~ 說的是全部由1組成的數字,比如1、11、111、1111等。傳說任何一個光棍都能被一個不以5結尾的奇數整除。比如,111111就可以被13整除。 現在,你的程式要讀入一個整數x,這個整數一定是奇數並且不以5結尾。然後,經過計算,輸出兩個數字:第一個數字s,表示x乘以s是一個光棍,第二個數字n是這個光棍的位數。這樣的解當然不是唯一的,題目要求你輸出最小的解。
提示:一個顯然的辦法是逐漸增加光棍的位數,直到可以整除x為止。但難點在於,s可能是個非常大的數 —— 比如,程式輸入31,那麼就輸出3584229390681和15,因為31乘以3584229390681的結果是111111111111111,一共15個1。
輸入格式:
輸入在一行中給出一個不以5結尾的正奇數x(<1000)。
輸出格式:
在一行中輸出相應的最小的s和n,其間以1個空格分隔。
輸入樣例:
31
輸出樣例:
3584229390681 15
程式碼:
//不能使用暴力列舉,會超時。使用這種方法每次得到的商即為要輸出的數。
//一直輸出就可以得到最後要求的那個值。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x, s = 0, n = 0;//n用來累計位數
cin >> x;
while (s < x)
{
s = s * 10 + 1;
++n;
}
while (true)
{
cout << s / x;
s %= x;
if (s == 0)
break;
s = s * 10 + 1;
++n;
}
cout << " " << n << endl;
return 0;
}
相關文章
- 基礎演算法題——整除光棍(Java大數)演算法Java
- 整除分塊
- 數論筆記-整除筆記
- 最新男女比例公佈 光棍有點多
- 整除的尾數 hd 2099
- 人人都知“雙十一”,幾人仍記“光棍節”
- 數論學習筆記 (1):整除筆記
- 設計一個函式,傳入一個數字n,若n可以被3整除的返回1,可以被5整除返回2,可以被7整除返回3函式
- 光棍節專題:python程式設計師如何找女朋友Python程式設計師
- LeetCode1262.可被三整除的最大和LeetCode
- awk判斷整除(包含小數和負數)
- LeetCode 2455[可被三整除的偶數平均值]LeetCode
- abc170D 不能整除其他元素的個數
- 第五章:整除性與最大公因數(1)
- 第五章:整除性與最大公因數(2)
- 滿足條件的數累加被17整除的數的累加
- 判斷一個數N能否同時被3和5整除;
- 尤拉函式、整除分塊和擴充套件歐幾里得函式套件
- 能被2、3、4、5、6、7、8、9等數整除的數的特徵特徵
- 如何在 1 到 2000 中計算出子集和能被 5 整除的子集有多少個?
- 輸出1-100之間的不能被5整除的數,每5個一行
- 一個大整數至少有多少個1 (每一位都是1)能整除2013
- 求1到n範圍內能被5或6或8 整除的數的個數.
- 2024ICPC武漢邀請賽-G.Pack-數論分塊、整除運算相關的不等式
- 【集合論】序關係 ( 哈斯圖示例 | 整除關係哈斯圖 | 包含關係哈斯圖 | 加細關係哈斯圖 )
- 【python初學者日記】讀入正整數m、n和k,求m、n之間能被k整除的所有整數Python
- 2022-07-11:給定n位長的數字字串和正數k,求該子符串能被k整除的子串個數。 (n<=1000,k<=100)字串
- 【Algorithm】演算法設計與分析(第二版)- 王紅梅 - JAVA實現:3.3 判斷一個大整數能否被11將該數的十進位制表從右端開始,每兩位一組構成一個整數,然後將這些數相加,判斷其和能否被1整除。Go演算法Java