当前位置:首页 » 语数英语 » 数学黑洞6174

数学黑洞6174

发布时间: 2021-07-22 20:53:58

㈠ 关于数学黑洞6174(c程序)拜托各位大神

问题出在这一步: for(j=0;j<=3;j++) { a[j]=s%10; s=s%10; } 你没理解求余符号的运算结果。 假如这里s = 1234 , 那么第一次循环,a[0] = 1234 % 10 = 4; s = 1234 % 10 = 4; 那么这个循环接下来还有作用吗? 数组a的元素都是4. 当然对于输入数组的范围要求也有问题,因为题目要求的是各位数字各不相同,而你的判断语句if((n%1111==0)&&(n>9999)&&(n<1000)) 是没有任何功能的,因为哪会有一个整数既大于9999又小于1000呢? 还有下面对数组的排列,有太多方法,每一种都比你的简单。试想,如果这个不是4位数,而是40位,你这种写法,那岂不是能写出几千行的程序?

㈡ Free Pascal 之 数学黑洞6174

program sxhd;
var a,i,j,l,k:integer;
begin
readln(a);
while a<>6174 do
begin
i:=a div 1000;
j:=(a div 100)mod 10;
l:=(a mod 100)div 10;
k:=a mod 10;
a1:=i+10*j+100*l+1000*k;
if a1>a then writeln(a1,'-',a,'=',a1-a)
else writeln(a,'-',a1,'=',a-a1);
a:=abs(a-a1);
end;
readln;
end.

㈢ 数学黑洞6174。 已知:一个任意的四位正整数。将数字重新组合成一个最大的数和最小的数相减。重复这

var
a,b,c:longint;
s,s1,s2:string[4];
ch:char;
i,j,k,code:integer;
begin
{readln(s);}
s:='8899';
iflength(s)<>4thenwriteln('error');
k:=0;
repeat
inc(k);
fori:=1to3doforj:=i+1to4do
ifs[i]>s[j]then
beginch:=s[i];s[i]:=s[j];s[j]:=ch;end;
s1:=s;
fori:=1to2do
beginch:=s[i];s[i]:=s[5-i];s[5-i]:=ch;end;
s2:=s;
val(s1,a,code);
val(s2,b,code);
c:=b-a;
str(c:4,s);
writeln(a:6,b:6,c:6);
until(c=6174)or(k>20);
writeln(k);
end.

㈣ Pascal-数学黑洞6174。求证:所有四位数的数字(全相同的除外),均能得到6174。输出掉进黑洞的步数

program asdf;
var
a:array[1000..9998] of integer;
b:array[1..24] of integer;
i,j,k,l,w,x,y,z,w1,x1,y1,z1,xx,yy,ii:Integer;
begin
for i:=1000 to 9998 do
begin
ii:=i;
w:=ii div 1000;
x:=ii div 100-w*10;
y:=ii div 10-w*100-x*10;
z:=ii mod 10;
if not((w=x)and(x=y)and (y=z)) then begin
yy:=1;
for j:=1 to 7 do
for w1:=1 to 4 do
for x1:=1 to 4 do
for y1:=1 to 4 do
for z1:=1 to 4 do
begin
if (w1+x1+y1+z1=1+2+3+4)and(w1*x1*y1*z1=1*2*3*4) then begin
for k:=1 to 4 do begin
xx:=1;
case k of
1:for l:=1 to w1 do begin xx:=xx*10; b[yy]:=b[yy]+w1; end;
2:for l:=1 to x1 do begin xx:=xx*10; b[yy]:=b[yy]+x1; end;
3:for l:=1 to y1 do begin xx:=xx*10; b[yy]:=b[yy]+y1; end;
4:for l:=1 to z1 do begin xx:=xx*10; b[yy]:=b[yy]+z1; inc(yy); end;
end;
end;
end;
end;
for k:=1 to 24 do
for l:=1 to k do
if b[k]>b[l] then begin b[k]:=b[l]+b[k]; b[l]:=b[k]-b[l]; b[k]:=b[k]-b[l]; end;
ii:=abs(b[k]-b[l]);
if ii=6174 then begin a[i]:=j; break; end;
end;
end;
end;
for i:=1000 to 9998 do
writeln(i,':',a[i]);
readln;
end.

㈤ 数学黑洞6174再实际中有什么

所谓数学黑洞,就是从给定的数字出发,在规定的运算法则下,最终都将得到固定的一个值,再也跳不出去了。就像宇宙中的黑洞可以将任何物质,包括光都牢牢吸住,无法逃脱一样。这样的数字称为“黑洞数”,这样的运算叫做“重排求差”操作。例如,三位数的黑洞数为495 简易推导过程:随便找个数,如297,三个位上的数从小到大和从大到小各排一次,为972和279,相减,得693 按上面做法再做一次,得到594,再做一次,得到495 之后反复都得到495再如,四位数的黑洞数有6174

㈥ 用C语言做:数学黑洞6174 格式要找样例一样的哦!谢谢您!

#include <stdio.h>
#defineDST_NUM6174
void ReSort(char c[], int len);
int MaxNum(char c[], int len);
int MinNum(char c[], int len);
void GetChars(unsigned int num, char c[], int len);
int count = 0;
int func(unsigned int num)
{
int res;
char c[4];
GetChars(num, c, 4);
ReSort(c, 4);
res = MaxNum(c, 4) - MinNum(c, 4);
count++;
if(res == DST_NUM) return count;
return func(res);
}
void main()
{
unsigned int num;
while(scanf("%d", &num))
{
getchar();
printf("%d\n", func(num));
count = 0;
}
}
void GetChars(unsigned int num, char c[], int len)
{
for(int i = 0; i < len; i++)
{
c[i] = num % 10 + '0';
num = num / 10;
}
}
void ReSort(char c[], int len)
{
int i, j;
char tmp;
for(i = len - 1; i > 0; i--)
{
for(j = 0; j < i; j++)
{
if(c[j] > c[j+1])
{
tmp = c[j];
c[j] = c[j+1];
c[j+1] = tmp;
}
}
}
}
int MaxNum(char c[], int len)
{
unsigned int num = 0;
for(int i = len - 1; i >= 0; i--)
{
num *= 10;
num += (c[i] - '0');
}
return num;
}
int MinNum(char c[], int len)
{
unsigned int num = 0;
for(int i = 0; i < len; i++)
{
num *= 10;
num += (c[i] - '0');
}
return num;
}

㈦ 数学黑洞之一的6174,为什么7749却不行呢

取任意一个4位数(4个数字均为同一个数的除外),将该数的4个数字重新组合,形成可能的最大数和可能的最小数,再将两者之间的差求出来;对此差值重复同样过程,最后你总是至达卡普雷卡尔黑洞6174,至达这个黑洞最多需要7个步骤。
例如:
大数:取这4个数字能构成的最大数,本例为:4321;
小数:取这4个数字能构成的最小数,本例为:1234;
差:求出大数与小数之差,本例为:4321-1234=3087;
重复:对新数3087按以上算法求得新数为:8730-0378=8352;
重复:对新数8352按以上算法求得新数为:8532-2358=6174;
结论:对任何只要不是4位数字全相同的4位数,按上述算法,不超过7次计算,最终结果都无法逃出6174黑洞;
对6174本身作此变换,7641-1467=6174;
对7749本身作此变换,9774-4779=4995,并非7749本身,所以7749肯定不是一个黑洞。如果你继续变换下去,就会得到6174.

热点内容
维族舞教学 发布:2025-08-29 17:04:23 浏览:429
师德师风整改总结 发布:2025-08-29 16:39:41 浏览:177
师德师风先进事迹校长 发布:2025-08-29 15:49:21 浏览:687
读班主任工作有感 发布:2025-08-29 15:31:05 浏览:614
世界历史皇帝 发布:2025-08-29 14:32:38 浏览:676
2017高考全国二语文卷 发布:2025-08-29 12:59:36 浏览:697
数学电子书下载 发布:2025-08-29 12:54:38 浏览:99
给班主任的一封信英语 发布:2025-08-29 12:02:10 浏览:299
数学班广告 发布:2025-08-29 11:38:13 浏览:629
高考英语答案三卷 发布:2025-08-29 11:01:51 浏览:982