C++ 判断一个大整数能否被11整除

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

C++ 判断一个大整数能否被11整除_第1张图片

#include 
#include 
#include 
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;
}

你可能感兴趣的:(c++)