setbit(55555);
setbit(66666);
setbit(77777);
setbit(88888);
setbit(99999);
cout< cout<<"please input the number:"< cin>>i; if(getbit(i)==0)//表明这个数还没进入任何一个圈,要进行判断 { findCyle(i); } return 1; } import java.util.ArrayList; import java.util.List; public class CycleTest { public static int computer(String str,List list){ int min = 0; int max = 0; int substraction = 0; String s1 = ""; String s2 = ""; String s3 = ""; int[] a = new int[str.length()]; int[] b = new int[str.length()]; for(int i = 0 ;i < str.length(); i++){ int x = Integer.parseInt(str.charAt(i)+""); a[i] = x; b[i] = x; } for(int i = 0 ;i < a.length; i++){ for(int j = a.length - 1 ;j > i;j--){ if(a[j] < a[j - 1]){ int temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp; } } } for(int i = 0 ;i < b.length; i++){ for(int j = b.length - 1 ;j > i;j--){ if(b[j] > b[j - 1]){ int temp = b[j]; b[j] = b[j - 1]; b[j - 1] = temp; } } } for(int i = 0;i < a.length;i++){ s2 += a[i]+""; } //Get the minimum min = Integer.parseInt(s2); // System.out.println(min); for(int i = 0;i < b.length;i++){ s3 += b[i]; } //Get the maximum max = Integer.parseInt(s3); // System.out.println(max); substraction = max - min; list.add(substraction); for(int i = 0;i < list.size()-1; i++){ if((Integer)list.get(i) == substraction){ // System.out.println(list); return 0; } } s1 = (max - min)+""; // System.out.println(list); return computer(s1,list); } public static void main(String[] args) { String s1 = "57238"; List list = new ArrayList(); computer(s1,list); list.remove(list.size()-1); System.out.println(list); } } 试试吧,我也是刚做的! 回答者: 哭淳| 一级| 2011-4-27 12:44 import java.util.Arrays; public class MyTest10 { public static void main(String args[]) { int f=Sort(array(34256)); int x=Sort(array(34256)); for(int i=0;i<4;i++) { x=Sort(array(x)); System.out.print(x+" "); } } static int []array(int n) { int a[]=new int[5]; int i=0; int m=n; while(i<5) { a[i]=m%10; if(m%10==0) a[i]=0; m/=10; i++; } return a; } static int Sort(int a[]){ Arrays.sort(a); String min=""; for(int i=0;i<5;i++) { min=min+String.valueOf(a[i]); } int Min=Integer.parseInt(min); StringBuffer sb=new StringBuffer(min).reverse(); String max=new StringBuffer(sb).toString(); int Max=Integer.parseInt(max); int c=Max-Min; return c; } } 11. 程序设计(满分9 分) 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程: 1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。 2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。 3、将奇数位总和加上偶数位总和,结果应该可以被10整除。 例如,卡号是:5432123456788881 则奇数、偶数位(用红色标出)分布:5432123456788881 奇数位和=35 偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和=35。 最后35+35=70 可以被10整除,认定校验通过。 请编写一个程序,从键盘输入卡号,然后判断是否校验通过。通过显示:“成功”,否则显示“失败”。 比如,用户输入:356827027232780 程序输出:成功 题目:当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程: 1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。 2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。 3、将奇数位总和加上偶数位总和,结果应该可以被10整除。 例如,卡