1019 数字黑洞

简介: 1019 数字黑洞

部分正确。 测试点2,3错误。

反复找不到原因,后来和别人的对比了一下,N不用字符串,直接当成整数处理。

//1019数字黑洞
 
#include<iostream>
#include<string>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
  string N;
  cin >> N;
  int a[4];
  int x = 0, y = 0;
  int result = -1;
  for (int i = 0; i < N.length(); i++) {
    a[i] = N[i] - '0';
  }
 
  while (result != 6174 && result !=0) {
    sort(a, a+4);
    y = (a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3]);
    x = (a[3] * 1000 + a[2] * 100 + a[1] * 10 + a[0]);
    result = x - y;
    printf("%04d - %04d = %04d\n",x,y,result);
    a[0] = result / 1000;
    a[1] = (result / 100) % 10;
    a[2] = (result / 10) % 10;
    a[3] = result % 10;
  }
  return 0;
}
 

后来改了一下,(N不用字符串,直接当成整数处理)。测试通过。

#include<stdio.h>
#include<algorithm>
int splitN(int N, int*a) {
  a[0] = N / 1000;
  a[1] = (N / 100) % 10;
  a[2] = (N / 10) % 10;
  a[3] = N % 10;
}
int main()
{
  int  N;
  scanf("%d",&N);
  int a[4];
  int x = 0, y = 0;
  int result = -1;
  splitN(N, a);
  do {
    std::sort(a, a + 4);
    y = (a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3]);
    x = (a[3] * 1000 + a[2] * 100 + a[1] * 10 + a[0]);
    result = x - y;
    printf("%04d - %04d = %04d\n", x, y, result);
    splitN(result, a);
  } while (result != 6174 && result != 0);
  return 0;
}
 
相关文章
|
7月前
|
算法
最大流判定(星际转移问题)
最大流判定(星际转移问题)
60 0
|
机器学习/深度学习 传感器 算法
【端点检测】短时能量和过零率双门限语音端点检测附matlab代码
【端点检测】短时能量和过零率双门限语音端点检测附matlab代码
【c++】寻找四位数的 “数字黑洞”
“数学黑洞”: 任意一个4位自然数,将组成该数的各位数字重新排列,形成一个最大数和一个最小数,之后两数相减,其差仍为一个自然数。重复进行上述运算,会发现一个神秘的数。
|
机器学习/深度学习 C++
1019 数字黑洞 (20 分)(C++)
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。
338 0
1019 数字黑洞 (20 分)(C++)
LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件
此次探测结果是LIGO和Virgo第一次以自动、即时公开的方式探测到的。
380 0
最大黑洞合并事件被发现,新黑洞约为太阳80倍大
它发生在2017年7月29日,距我们约90亿光年。
441 0
|
算法 机器学习/深度学习
算法学习之路|数字黑洞
给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。
1225 0
|
算法 索引 机器学习/深度学习