四个测试点错误,找不出。
第二个测试点,关于输入为6174,需要执行一遍再结束。
第三四个测试点,如果输入的为1000, 第一次相减得1,需要补全四位才行,所以大部分网友用字符串和数值相互转化的思路在做。
#include <iostream>
#include <math.h>
using namespace std;
int main(){
int N, shengxu, jiangxu, cnt1, cnt2;
cin >> N;
if(N % 1111 == 0) printf("%04d - %04d = 0000", N, N);
while(N != 6174 && N % 1111 != 0){
int rec[10] = {
0};
shengxu=0, jiangxu=0, cnt1=3, cnt2=3;
while(N){
rec[N % 10]++; N /= 10;
}
for