1 条题解
-
0
C :
#include<stdio.h> int main() { int n,a[4],x,y,t; while(scanf("%d",&n)!=EOF) { while(n!=6174) { a[0]=n/1000; a[1]=n/100%10; a[2]=n/10%10; a[3]=n%10; if(a[0]<a[1]) { t=a[0]; a[0]=a[1]; a[1]=t; } if(a[2]<a[3]) { t=a[2]; a[2]=a[3]; a[3]=t; } if(a[0]<a[2]) { t=a[0]; a[0]=a[2]; a[2]=t; } if(a[1]<a[3]) { t=a[1]; a[1]=a[3]; a[3]=t; } if(a[1]<a[2]) { t=a[1]; a[1]=a[2]; a[2]=t; } x=a[0]*1000+a[1]*100+a[2]*10+a[3]; y=a[0]+a[1]*10+a[2]*100+a[3]*1000; n=x-y; printf("%d-%d=%d\n",x,y,n); } } return 0; }
C++ :
#include<iostream> #include<cstdio> using namespace std; int a[10]={0}; int main() { int n; cin>>n; while(n!=6174) { for(int i=1;i<=4;i++) { a[i]=n/1000; n=(n-a[i]*1000)*10; } for(int j=1;j<=4;++j) for(int z=1;z<=4-j;++z) if(a[z]<a[z+1]) {int t=a[z];a[z]=a[z+1];a[z+1]=t;} n=(a[1]*1000+a[2]*100+a[3]*10+a[4])-(a[4]*1000+a[3]*100+a[2]*10+a[1]); if(a[4]!=0) cout<<a[1]<<a[2]<<a[3]<<a[4]<<"-"<<a[4]<<a[3]<<a[2]<<a[1]<<"="<<n<<endl; else { if(a[3]!=0) cout<<a[1]<<a[2]<<a[3]<<a[4]<<"-"<<a[3]<<a[2]<<a[1]<<"="<<n<<endl; else cout<<a[1]<<a[2]<<a[3]<<a[4]<<"-"<<a[2]<<a[1]<<"="<<n<<endl; } } return 0; }
Pascal :
program p22103; var max,min,c,i:longint; p:array[1..4] of longint; procedure cw(n:longint); var i,j,t:longint; begin i:=0; while n<>0 do begin inc(i); p[i]:=n mod 10; n:=n div 10; end; for i:= 1 to 4 do for j:= i+1 to 4 do if p[i]>p[j] then begin t:=p[i]; p[i]:=p[j]; p[j]:=t; end; //min to max end; procedure qmax(); var i:longint; begin max:=0; for i:=4 downto 1 do max:=max*10+p[i]; end; procedure qmin(); var i:longint; begin min:=0; for i:=1 to 4 do min:=min*10+p[i]; end; begin readln(c); while c<>6174 do begin cw(c); qmax(); qmin(); c:=max-min; writeln(max,'-',min,'=',c); end; end.
- 1
信息
- ID
- 2073
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者