1. 程式人生 > >判定某個整數是否能被7整除

判定某個整數是否能被7整除

今天在網上看到幾篇關於一個數是否能被7整除的演算法,為加深理解,防止忘記,現記錄整理如下:

割尾法

定義:

  一個n位數能被7整除當且僅當它的前n-1位減去最後一位的兩倍能被7整除。

例項:

  看8638能否被7整除,只需要看(863-8*2)=847能否被7整除,繼續轉化為(84-7*2)=70,因此8638能被7整除。

奇偶位差法

定義

  首先我們把數從個位開始往左邊每兩個數字 分為一組 ,再從開始“一加一減找餘數”, 然後把找到的餘數從右往左 讀出來,如果讀出來的數能被7整除,則該數可被7整除,否則不行,若看不出來,可以重複上面步驟。

例項

  判斷1641969是否為7的倍數

  1 6 4 1 9 6 9
  6    2
  1 64 19 69
    1    6

  【1,64,19,69】【[1+( 6)]%7=0,[64-(1)]%7=0,[19+(2)]%7=0,[69-(6)]%7=0】從右至左,得到數字6216,重複上面的步驟。

  6  2  1  6
  1
  62  16
      2
  得到數字21,顯然21是可以被7整除的,所以,6216可被7整除,1641969也可被7整除。

兩種方法的比較

  割尾法對於三位數、四位數比較簡便;但位數一多,顯然這種方法比較簡便。1641969我們用這種方法只做了兩次,用割尾法要做5次!

相關推薦

判定某個整數是否7整除

今天在網上看到幾篇關於一個數是否能被7整除的演算法,為加深理解,防止忘記,現記錄整理如下: 割尾法 定義:   一個n位數能被7整除當且僅當它的前n-1位減去最後一位的兩倍能被7整除。 例項:   看8638能否被7整除,只需要看(863-

計算1~100之間,3整除但是不7整除的數的和(C語言)

#include<stdio.h> int main(agrc *agrv) { int n,i; int sum=0; scanf("%d",&n); for(i=1;i<=n;i++){ if(i%3==0&&i%7!=0){ sum+=i; &

python: 輸出 1~100 之間不 7 整除的數,每行輸出 10 個數字,要求應用字串格式化方法美化輸出格式。

#輸出 1~100 之間不能被 7 整除的數 j = 0    #for i in range(1,101):    # 遍歷1-100取值,定義為變數 i      if i%7 != 0: &n

判斷一個整數是否11整除

如果一個整數在整型範圍內,直接用求餘符號就能搞定,但是如果這個整數比較大就要另尋他路了。        有一種演算法叫做“奇偶位差法”,意思就是在奇數位上的數字和與偶數位上的數字和做差,如果這個差的絕對值能被11整除,那麼這個數字就可以被11整除。 #include<

編寫函式,找出1-1000之內所有7整除11整除,但不同時7和11整除的數,放到A所指的陣列內,並返回個數

#include<stdio.h> int f(int a[]) { int i = 0,n; for(n = 1;n <=1000;n++) { if(n%7==0 || n%11==0) //能被7整除或被11整除

C#面試題:輸入一個長度100的數字字串,判斷是否7整除

輸入一個長度為100的數字字串,首字元不能是0,判斷是否能被7整除。 思路:把字串中各個位數字拿出來與7取餘,如果最後為0,表示可以整除,不為0表示不能整除。 例如:504:5%=5,50%7=1,14%7=0等於0。那麼504能被7整除。             21

求出1~1000之間所有7整除的數,並每五個求一次和。

<span style="font-size:24px;"> int a=0,b=0,sum=0; while (a < 1000) { a++; if (a % 7

解答:輸出1到1000中7整除或者以7結尾的數

 /**  * @param args  */ public static void main(String[] args) {  // TODO Auto-generated method stub  //3、輸出1到1000中能被7整除或者以7結尾的數  int i = 1;  int result1 =

codeforces 376C Divisible by Seven(7整除的數)

題目連結: 題目大意: 給一個很大的數,這個數一定包含1,6,8,9這4個數字,當然可能還有其他數字。現在要重新排列這些數字獲得一個新的數字,要求不出現前導零並且被7整除。 思路: 能被7整除的數,一定是有規律可循的。 先明確:10的零次冪除以7餘1;

判定閏年問題:年份4整除,並且不100整除,或者年份400整除

-o text 閏年 技術 ima 技術分享 .com size images 判定閏年問題:年份能被4整除,並且不能被100整除,或者年份能被400整除

jzxx10335整除且至少有一位數字是5的所有整數的個數

題目描述 找出1-N中能被5整除且至少有一位數字是5的所有整數的個數.N<32767 輸入 輸入只有一行,只有1個整數N。 輸出 輸出只有一行(這意味著末尾有一個回車符號),包括1個整數。 樣例輸入 9999 樣例輸出 1271 滿分程式碼: #inclu

7、11、13、17、19整除的數的特徵

能被7整除的數的特徵    若一個整數的個位數字去掉,再從餘下的數中,減去個位數的2倍,如果差是7的倍數,則原數能被7整除。如果數字仍然太大不能直接觀察出來,就重複此過程。 能被11整除的數的特徵    把一個數由右邊向左邊數,將奇位上的數字與偶位上的數字分別加起來

1-1000中整除但不整除且至少有一位數為五的所有整數

{ int a,b,c,d; for(a=3;a<1000;a++) { b=a/100; c=(a-b*100)/10; d=a-100*b-10*c; if(a%3

如何證明一個數能否7整除判定方法

如題,一個數能否被7整除的判定方法是如下的:例如,求344617能否被7整除把617-344=273,273能被7整除,所以344617能被7整除又如,求4241468能否被7整除把468-241+4=231能被7整除,所以4241468能被7整除怎樣證明此方法呢?最好用中

判斷一個整數是否3或5整除

/* * Copyright (c) 2015, CSDN學院 * All rights reserved. * 檔名稱:re.c * 作 者:劉樹 * 完成日期:2015年 4 月 16 日 * 版 本 號:v1.0 * * 問題描述:輸入一個數,判斷它能否被3或者

K 整除的最大連續子串長度

images 都是 str image ace 數組a 暴力 輸出 這一 【來源】網上流傳的2017美團秋招筆試題 【問題描述】 兩個測試樣例輸出都是5 【算法思路】 暴力解法時間會超限,使用一種很巧妙的數學方法。用在讀取數組arr時用數組sum記錄其前 i 項的和,

day02_01.3整除的數

輸出 true range 整數 python clas highlight 簡潔 echo 第1題 能被3整除的數 編程思想的初步形成 把人的正常思維放大化,用放大鏡去放大你的每個思考過程 你會發現,原來編程沒有你想象的那麽難 題目:輸出100以內(不含100)能被3

day02_02.3整除的個位數為6的數

整除 寫法 echo highlight amp php div print 題目 第2題 能被3整除的個位數為6的數 難度增加一點點,再接再厲 註意: 把一些限制條件,用PHP編程的語言來執行 題目:輸出100以內(不含100)能被3整除且個位數為6的所有整數 <

180113 打印1-100既3整除5整除的數

如何 條件 col 沒有 打印 。。 生成 clas body for i in range(1,101): #for ... in... 循環 生成器 range...1到101範圍 if(i%3==0 and i%5==0): #如果 i這個變量 除以

網易筆試題:找出指定區間數列中3整除的個數

字符串 include namespace style 試題 AI () pan string 題目描述:給定一個數列:1,12,123,...,12345678910,1234567891011...,找出指定區間能被3整除的個數。 輸入描述:輸入兩個數字l和r,代表數列