Enumeración: pares de números combinados

Descripción del título:
ingrese un número n tal que a + b = n, y b sea el resultado de establecer un solo dígito en 0 en a, y genere cada caso de a y b

Idea de algoritmo:

  • Idea general: enumere a, calcule b mediante la fórmula y luego determine si b es el resultado de establecer un dígito en 0 en un
  • Establezca una posición determinada en 0: a / (10 * t) + a% t, donde t es 1,10,100,1000 para indicar uno, diez, cien, mil y establecerlo en 0
long long t=1;
while(a>=t){
    
    
	long long b = a/(t*10)*t+a%t;
	if((a+b)==n){
    
    
		cout<<"a = "<<a<<' '<<"b = "<<b<<endl;
		k++;
		break ; // 当a确定时候b也唯一确定,所以直接break 
	}
	t*=10;
}

Todos los códigos:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;

int main(){
    
    
	long long n,a;
	cin>>n;
	int k=0;
	for(a=n/2;a<n;a++){
    
    
		long long t=1;
		while(a>=t){
    
    
			long long b = a/(t*10)*t+a%t;
			if((a+b)==n){
    
    
				cout<<"a = "<<a<<' '<<"b = "<<b<<endl;
				k++;
				break ; // 当a确定时候b也唯一确定,所以直接break 
			}
			t*=10;
		}
	}
	cout<<"以上"<<k<<"个解"<<endl;
	return 0;
} 

Supongo que te gusta

Origin blog.csdn.net/weixin_45666249/article/details/114433616
Recomendado
Clasificación