1 条题解
-
0
C :
#include <stdio.h> int arrange(int *arr){ int i,j,t; for(i=0;i<4;i++){ for(j=0;j<3;j++){ if(arr[j]<arr[j+1]){ t=arr[j]; arr[j] = arr[j+1]; arr[j+1] = t; } } } return 1; } int sepNum(int *d, int num){ d[0]=num%10; d[1]=num/10%10; d[2]=num/100%10; d[3]=num/1000; return 1; } int main(){ int i=0,num,newnum,n; int a,d[4]; scanf("%d",&n); while(n--){ scanf("%d",&num); sepNum(d,num); while(newnum!=6174){ arrange(d); newnum= d[0]*1000+d[1]*100+d[2]*10+d[3] - d[3]*1000-d[2]*100-d[1]*10-d[0]; sepNum(d,newnum); i++; } printf("%d\n",i+1); i=0; newnum=0; } return 1; }
Java :
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); while(n-->0) { String str=sc.next(); String str1=getAnswer(str); int count=1; while(!str1.equals(str)) { count++; str=str1; str1=getAnswer(str1); } System.out.println(count); } } public static String getAnswer(String str) { char[] ch=str.toCharArray(); for(int i=0;i<ch.length;i++) { ch[i]=str.charAt(i); } maxbubbleSort(ch); String a=String.valueOf(ch); minbubbleSort(ch); String b=String.valueOf(ch); int c=Integer.parseInt(a)-Integer.parseInt(b); return String.valueOf(c); } public static void maxbubbleSort(char ch[]) { for(int i=0;i<ch.length;i++) { for(int j=0;j<ch.length-i-1;j++) { if(ch[j]<ch[j+1]) { char temp=ch[j]; ch[j]=ch[j+1]; ch[j+1]=temp; } } } } public static void minbubbleSort(char ch[]) { for(int i=0;i<ch.length;i++) { for(int j=0;j<ch.length-i-1;j++) { if(ch[j]>ch[j+1]) { char temp=ch[j]; ch[j]=ch[j+1]; ch[j+1]=temp; } } } } }
- 1
信息
- ID
- 2008
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者