精华内容
下载资源
问答
  •  判断一个数能不能被11整除判断一个数能不能被7整除一样,都没有直接判断的方法,需要借助间接的方法,这种间接的方法有两种,其一是“割减法”,其二是奇偶位差法。  (1)割减法:判断被11整除的割减法与判断...

    题目地址;点击打开链接

    思路:参考队友的代码写的,资料地址:点击打开链接

     

    怎样判断一个数能不能被11整除?

      判断一个数能不能被11整除与判断一个数能不能被7整除一样,都没有直接判断的方法,需要借助间接的方法,这种间接的方法有两种,其一是“割减法”,其二是奇偶位差法。

      (1)割减法:判断被11整除的割减法与判断被7整除的割减法不同。即:一个数割去末尾数字,再从留下来的数中减去这个末位数字,这样一次一次地减下去,如果最后结果是11的倍数(包括得0),那么这个数就能被11整除;如果最后结果不是11的倍数,那么这个数就不能被11整除。

      例如:4708……割去末位8

                                       

      因此,4708能被11整除。

      在判断时,对于数目不大的数,用口算就可以看出结果。

      通过口算可以得出:891能被11整除;1007不能被11整除。

      (2)奇偶位差法:把一个数由右边向左边数,将奇位上的数字与偶位上的数字分别加起来,再求它们的差,如果这个差是11的倍数(包括0),那么原来这个数就一定能被11整除。

      例如①:判断283679能不能被11整除。

      23-12=11

      因此,283679能被11整除。

      ②判断480637能不能被11整除。

     

     21-7=14

      因此,480637不能被11整除。

      上述这种方法叫做奇偶位差法,算理可通过下列算式说明。

      9÷9=1 9÷11(不能整除)

      99÷9=11 99÷11=9

      999÷9=111 99÷11(不能整除)

      9999÷9=1111 9999÷11=909

      99999÷9=11111 9999÷11(不能整除)

      999999÷9=111111 999999÷11=90909

      …… ……

      由以上两算式中可以看到:全部由9组成的任何一个数,都能被9整除,但除以11则不一定,只有当9的个数成偶数时,才能被11整除,当9的个数是奇数时,则不能被11整除。

      当一个数首尾数字相同,中间都是0,而且0的个数成偶数时,这个数也能被11整除。

      如:11÷11=1

      1001÷11=91

      300003÷11=27273

      ……

      通过用奇偶位差法的分解来判断8712能不能被11整除,从中也可以进一步理解这种判断方法的算理。

      8712=8000+700+10+2 ①

      偶 奇 偶 奇

      偶位上的数可以写成:

      8000=8×1000=8×(1001-1) ②

      10=1×10=1×(11-1) ③

      奇位上的数可以写成:

      700=7×100=7×(99+1) ④

      把②③④式代到①式中去。

      第一个括号中所得的结果,肯定能被11整除,原数能不能被11整除,决定于第二个括号中所得的数,而第二个括号中的数,恰恰是奇位数字与偶位数字之差,由此而得出了用奇偶位差法来判断一个数能不能被11整除。

    AC代码:

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <algorithm>
    
    using namespace std;
    
    char a[1000000];
    
    int main()
    {
        int n,t,sum1,sum,l,i;
        int sum_ji,sum_ou,casei = 1,begin1;
        while(scanf("%d%d",&n,&t))
        {
            sum_ji = 0;
            sum_ou = 0;
            sum1 = 0;
            l = 0;
            if(n == -1 && t == -1)
                break;
            while(n)
            {
                a[l++] = n % 10 + '0';
                sum1 += n % 10;
                n /= 10;
            }
            reverse(a,a+l);
            sum = sum1;
            while(t--)
            {
                begin1 = l;
                while(sum1)
                {
                    a[l++] = sum1 % 10 + '0';
                    sum += sum1 % 10;
                    sum1 /= 10;
                }
                reverse(a+begin1,a+l);//转换的是从begin1到l-1的位置,也就是说第一个参数是转换开始的位置,第二个参数是转换结束的下一个位置
                sum1 = sum;
            }
            for(i=0; i<l; i++)
            {
                //printf("  %c",a[i]);
                if(i % 2 == 0)
                    sum_ji += a[i] - '0';
                else
                    sum_ou += a[i] - '0';
            }
            //printf("\n");
            printf("Case #%d:",casei++);
            l = abs(sum_ji - sum_ou);
            if(l % 11 == 0)
                printf(" Yes\n");//注意输出,前面有一个空格,大小写都有
            else
                printf(" No\n");
        }
        return 0;
    }


    展开全文
  • 设计算法,判断一个大整数能否被11整除。可以通过以下方法:将该的十进制表示从右端开始,每两位一组构成一个整数,然后将这些相加,判断其和能否被11整除。例如,将562843748分割成5,62,84,37和48,然后判断(5...

    设计算法,判断一个大整数能否被11整除。可以通过以下方法:将该数的十进制表示从右端开始,每两位一组构成一个整数,然后将这些数相加,判断其和能否被11整除。例如,将562843748分割成5,62,84,37和48,然后判断(5+62+84+37+48)能否被11整除。

    #include<iostream>
    #include<cstring>
    using namespace std;
    
    void JudgeDivision(int r[],int n)
    {
        long int sum=0;
        for(int i=n-1;i>=0;i=i-2)
            if(i==0)
                sum=sum+r[0];
            else
                sum=sum+r[i-1]*10+r[i];
        if(sum%11==0)
            cout<<"Yes";
        else
            cout<<"No";
        return ;
    }
    
    int main()
    {
        string str;
        //查询当前环境下string能容纳的字符个数
        //cout<<str.max_size()<<endl;
        cin>>str;
        int n=str.length();
        int r[1000]={0};
        for(int i=0;i<n;i++)
            r[i]=str[i]-'0';
        JudgeDivision(r,n);
        return 0;
    }
    
    展开全文
  • C++ 判断一个大整数能否被11整除

    千次阅读 2020-02-23 21:50:07
    判断一个大整数能否被11整除,可以通过以下方法:将该的十进制表示从右端开始,每两位一组构成一个整数,然后将这些相加,判断其和能否被11整除。例如,将562843748分割成5,62,84,37,48,然后判断5+62+84+37...

    判断一个大整数能否被11整除,可以通过以下方法:将该数的十进制表示从右端开始,每两位一组构成一个整数,然后将这些数相加,判断其和能否被11整除。例如,将562843748分割成5,62,84,37,48,然后判断5+62+84+37+48能否被11整除。

    在这里插入图片描述

    #include <iostream>
    #include <cstring>
    #include <iomanip>
    using namespace std;
    void function(char m[]){
    	int a[100];
    	int i,sum=0; 
    	if(strlen(m)%2==1){
    		a[0]=0;
    		for(i=0;i<strlen(m);i++){
    			a[i+1]=m[i]-'0';
    		}
    		for(int j=0,i=0;i<(strlen(m)+1)/2;i++,j=j+2){
    			sum=sum+a[j]*10+a[j+1];
    		}
    	}
    	else{
    		for(i=0;i<strlen(m);i++){
    			a[i]=m[i]-'0';
    		}
    		for(int j=0,i=0;i<strlen(m)/2;i++,j=j+2){
    			sum=sum+a[j]*10+a[j+1];
    		}	
    	}
    	if(sum%11==0)
    		cout<<"Yes"<<endl;
    	else 
    		cout<<"No"<<endl;
    }
    int main(){
    	char m[100];
    	cin>>m;
    	function(m);
    	return 0;
    }
    
    展开全文
  • 判断一个整数是否能被11整除

    千次阅读 2017-03-21 16:00:18
    传说有种神奇的算法叫做“奇偶位差法”,啥意思呢,就是在奇位上的数字和与偶数位上的数字和做差,如果这差的绝对值能被11整除,那么这数字就可以被11整除。举栗子:11 奇位:1 偶位:1 差的绝对值:1...

    如果一个整数在整型范围内,那么这个题目就很简单了,直接用求余符号就能搞定,但是如果这个整数比较大怎么办呢?

    传说有一种神奇的算法叫做“奇偶位差法”,啥意思呢,就是在奇数位上的数字和与偶数位上的数字和做差,如果这个差的绝对值能被11整除,那么这个数字就可以被11整除。

    举个栗子:

    11
    奇数位:1
    偶数位:1
    差的绝对值:1-1=0
    因为0%11=0,所以11可以被11整除
    
    1837
    奇数位和:7+8=15
    偶数位和:1+3=4
    差的绝对值:15-4=11
    因为11%11=0,所以1837可以被11整除
    
    32476
    奇数位和:6+4+3=13
    偶数位和:2+7=9
    差的绝对值:13-9=4
    因为4%11!=0,所以32476不可以被11整除

    算法就是这么个算法,具体啥原理这里就不讨论了,因为这是搞数学的人的事情了,有了算法,那么代码实现也就十分容易了。

    int checkIfCanBedivideBy11(string str)
    {
        int n = str.length();
    
        int oddDigSum = 0, evenDigSum = 0;
        for (int i=0; i<n; i++)
        {
            if (i%2 == 0)
                oddDigSum += (str[i]-'0');
            else
                evenDigSum += (str[i]-'0');
        }
        return ((oddDigSum - evenDigSum) % 11 == 0);
    }
    展开全文
  •  判断一个数能不能被11整除判断一个数能不能被7整除一样,都没有直接判断的方法,需要借助间接的方法,这种间接的方法有两种,其一是“割减法”,其二是奇偶位差法。  (1)割减法:判断被11整除的割减法与...
  • 性质2:几个数相乘,如果其中有一个因数能一个数整除,那么它们的积也能这个数整除。     能2整除的数:个位上的数能2整除(偶数都能2整除) 能3整除的数:各个数位上的数字和能3整除4...
  • 判断一个数能否7或9整除

    万次阅读 2012-12-06 20:40:01
    判断一个数整除性对于某些除数来说是一件非常容易的事,比如2、3、4、5、6、8、9、10、11、12、15……  但是对于7来说一直是一个难题,而判定是否7整除在数字运算中又比较常用。我刚看到一种判定能否7整除的...
  • 昨天看到一个有意思的题目,不用除法和求模运算,判断一个数能否3整除。这个问题,网上有人给了一个答案,但是该答案并不正确(读者可以自己去网上搜一下这个题目,可以看到该答案)。本文提出一个思路,与...
  • 性质2:几个数相乘,如果其中有一个因数能一个数整除,那么它们的积也能这个数整除。 能2整除的数:个位上的数能2整除(偶数都能2整除) 能3整除的数:各个数位上的数字和能3整除4整除的数...
  • 如果n的二进制末位为0,那么n和n&gt;&gt;1同时3整除或者不整除 如果n的二进制末位为1,那么n和...现在给出一个数a,假设它能3整除,结果是b,即a=3*b,那么从二进制乘法运算判断出,b的最低位与a的最...
  • 如果一个数字的备用位数字总和之差可被11整除,则该数字可被11整除。例如,如果(奇数位数的总和)–(偶数位数的总和)为0或可被11整除,则给定数字可被11整除。程序importjava.util.Scanner;publicclassDivisibleBy11{...
  • 在小学的数学课本上,我们就学习过下面这条性质:如果一个整数各个位数之和能3整除,那么这个整数就能3整除。掌握了这一性质,我们就能轻松地判断216、1245、10432这些较大的都能够3整除。那么对其他较小的...
  • 判断一个数N能否同时3和5整除; 代码如下: 1 #include<stdio.h> 2 int main() 3 { 4 int a,b; 5 scanf("%d",&a); 6 if (a < 5) 7 b = 1; 8 else 9 if (a >5) 10 { 11 if (a%3 == 0&...
  • 给你一个数N(N   Sample Input 11 506 45 Sample Output YES YES NO 思路:因为N是一个很大数,只有用char存成字符串,把奇数位上的数的和减去偶数位数的数如果能被11整除,则原数就能被11整除,...
  • 设计算法,判断一个大整数能否被11整除。可以通过以下方法:将该的十进制表从右端开始,每两位一组构成一个整数,然后将这些相加,判断其和能否被1整除。例如,将562843748分割成5,62,84,37,48,然后判断(5...
  • 编写一个方法method(),判断一个数能否同时3和5整除 首先编写一个方法method(),由于是判断,所以返回的数据类型应是波尔型,并且向主方法传一个整数类型的参数X public class Zhawo11 { } public ...
  • 在小学的数学课本上,我们就学习过下面这条性质:如果一个整数各个位数之和能3整除,那么这个整数就能3整除。掌握了这一性质,我们就能轻松地判断216、1245、10432这些较大的都能够3整除。那么对其他较小的...
  • 可能大家在小数初中的时候都知道一些快速判断一个数特殊的数整除的方法,如: 如果一个数的所有数字之和能3整除,则这个数能3整除; 如果一个数的个位为0或5,则这个数能5整除; 如果一个数的所有数字...
  • 字符串存储大整数 #include <stdio.h> #include <string.h> ... printf("输入由几个数\n"); scanf("%d",&n); while(n--) {int sum=0; scanf("%s",str); int len=strlen(str);
  • 快速判断一个数能否1、2、3、4、5、6、7、8、9、10、11、12、13、17、19、23等整除的规律总结 (1) 1与0的特性: 1是任何整数的约数,即对于任何整数a,总有1|a.   0是任何非零整数的倍数,a≠0,a为...
  • 快速判断一个数能否1、2、3、4、5、6、7、8、9、10、11、12、13、17、19、23等整除的规律总结 (1) 1与0的特性:  1是任何整数的约数,即对于任何整数a,总有1|a.  0是任何非零整数的倍数,a≠0,a为...
  • 7整除的简易的判断方法

    千次阅读 2009-07-11 18:00:00
    转自Matrix67 大牛的blog 判断一个数整除性对于某些除数来说是一件非常容易的事,比如2、3、4、5、6、8、9、10、11、12、15…… 但是对于7来说一直是一个难题,而判定是否7整除在数字运算中又比较常用。...
  • 分析:如果判断一个比较小的正整数是不是质数比较容易,我们通常只需要用2,3,5,7,11,13这些质数去除这个数,如果都不能整除,则该数是质数,如果其中某一个数能够整除它,则是合数。比如,143,因为143÷11=13...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 253
精华内容 101
关键字:

判断一个数被11整除