一個大整數至少有多少個1 (每一位都是1)能整除2013
例如:111111111~~~~(n個1)%2013==0;
思路:
由於位數太大,已經超過了基本型別的位數,如果直接暴力判斷沒有辦法會因為溢位輸不出想要的結果。像這種直接求餘數問題,舉個簡單的例子:
求至少有幾個1(每個位都是1)可以整除3
①:一個1:因為1%3!=0,不能整除,所以1/3==1;
②:二個1:(1/3)*10+1==11,因為11%3!=0,所以11/3==2;
③:三個移:(11/3)*10+1==21,因為21%3==0,所以三個1時可以整除3。即111%3==0;
②中的(1/3)*10+1本應該是1*10+1,③中的(11/3)*10+1應該是11*10+1,也就是n個1不整除時就加多一個1再判斷。
比如N對M取餘,就是得出N不能整除的一部分,可以先把能整除N的一部分去掉,得到的數對N 整除和本身整除結果是一樣的。
程式碼
#include<iostream>
using namespace std;
int f(int n) {
int sum = 1, len = 1;
while (sum % n) {
len++;
////sum*10+1除2013的餘數,可以先算sum%2013,就是把sum可以整除部分先提前減掉,再來求其餘數
sum = (sum % n) * 10 + 1;
}
return len;
}
int main()
{
cout << f(2013);
return 0;
}
答案:60個1
相關文章
- 如何在 1 到 2000 中計算出子集和能被 5 整除的子集有多少個?
- 求1到n範圍內能被5或6或8 整除的數的個數.
- 設計一個函式,傳入一個數字n,若n可以被3整除的返回1,可以被5整除返回2,可以被7整除返回3函式
- 將一個整數逆序輸出·正序輸出它的每一位數字
- 數論學習筆記 (1):整除筆記
- java 生成一個隨機整數,範圍從 1 到 10Java隨機
- 給定一個n,輸出從1到n的整數
- 輸出1-100之間的不能被5整除的數,每5個一行
- 輸入一個整數,返回這個整數的位數
- 一個整數,它加上100後是一個完全平方數, 再加上168又是一個完全平方數,請問該數是多少?
- 翻轉一個整數
- 一個Java方法能使用多少個引數?Java
- 輸出1~100中不含數字9的全部整數,每五個換一行
- 一個漏測Bug能讓你想到多少?
- 【Algorithm】演算法設計與分析(第二版)- 王紅梅 - JAVA實現:3.3 判斷一個大整數能否被11將該數的十進位制表從右端開始,每兩位一組構成一個整數,然後將這些數相加,判斷其和能否被1整除。Go演算法Java
- 第五章:整除性與最大公因數(1)
- 判斷一個數N能否同時被3和5整除;
- 【故障公告】1個儲存過程拖垮整個資料庫儲存過程資料庫
- leetcode 191 位1的個數LeetCode
- 1的個數 【位運算】
- LeetCode每日一題: 位1的個數(No.191)LeetCode每日一題
- L1-046 整除光棍 (20分)
- abc170D 不能整除其他元素的個數
- 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
- jmeter 的兩個介面,變數都是一樣的第一個介面能識別出來,第二個識別不出來,求教大佬JMeter變數
- 2034 整數的個數
- 給一個不多於五位的正整數,要求:1.求出它是幾位數;2.分別輸出每一位數字;3.按逆序輸出各位數字,例如原數為321,應輸出123.
- 列印1-100之間所有9的倍數的整數,統計個數 及 總和
- 有一組整數資料,全部除以一個整數a,使得餘數是同n種數字,如何計算出這個整數a的全部可能。
- python如何判斷一個數是否是整數Python
- L1-009 N個數求和
- 【leetcode.191】位1的個數LeetCode
- 求兩個整數之和——一個寫註釋的新手
- 面試題:一個整數,它加上100後是一個完全...面試題
- 【python初學者日記】讀入正整數m、n和k,求m、n之間能被k整除的所有整數Python
- 大模型學習進階 1-搭建一個開源大模型大模型
- 02_Python學習筆記之統計整數二進位制中1的個數Python筆記
- leetcode:確實的第一個整數(java)LeetCodeJava