KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.62
System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64
User : www ( 80)
PHP Version : 8.3.8
Disable Function : NONE
Directory :  /domains/mandarintools/download/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/mandarintools/download/numbers.java
import java.lang.*;
import java.util.*;

class numbers {

    public final static String minus = "�t";

    public final static String[] digits = {"�s", "�@", "�G", "�T", "�|", "��", "��", "�C", "�K", "�E"}; 

    public final static String[] beforeWan = {"�Q", "��", "�d"}; 
    public final static String[] afterWan = {"", "�U", "��", "��"}; 

    public final static String ALTTWO = "��";
    public final static long TEN = 10;


    public numbers() {
    }

    public static String EnglishToChineseNumber(long enumber) {
	int[] powers = new int[30];
	int power = 0;
	int value = 0;
	boolean negative = false, // is it a negative integer
	    inzero = false,       // are we in a stretch or 1 or more zeros (only add one zero for the stretch)
	    canaddzero = false;   // only add a zero if there's something non-zero on both sides of it
	StringBuffer cnumber = new StringBuffer();

	// If zero, just return zero
	if (enumber == 0) {
	    return digits[0];
	}

	// Check if it's negative, set the negative flag and make it positive
	if (enumber < 0) {
	    negative = true;
	    enumber = -enumber;
	}

	// Get the value of the coefficient for each power of ten
        while (Math.pow(TEN, power) <= enumber) {
	    value = (int)((enumber % Math.pow(TEN, power+1))/Math.pow(TEN, power));
	    powers[power] = value;

	    // Subtract out the current power's coefficient and increase the power
            enumber -= enumber % Math.pow(TEN, power+1);
            power++;
        }


	// Take the decomposition of the number for above and generate the Chinese equivalent
	for (int i = 0; i < power; i++) {
	    //System.out.println("10^" + i + ":\t" + powers[i]);

	    if ((i % 4) == 0) {  // Reached the next four powers up level
		if (powers[i] != 0) {
		    inzero = false;
		    canaddzero = true;
		    cnumber.insert(0, digits[powers[i]] + afterWan[i/4]);
		} else {
		    // Check that something in the next three powers is non-zero before adding 
		    if (((i+3 < power) && powers[i+3] != 0) ||
			((i+2 < power) && powers[i+2] != 0) ||
			((i+1 < power) && powers[i+1] != 0)) 
		    {
			cnumber.insert(0, afterWan[i/4]);
		    }
		}
	    } else {  // Add one, tens, hundreds, or thousands place for each level
		if (powers[i] != 0) {
		    inzero = false;
		    canaddzero = true;
		    if (power == 2 && i == 1 && powers[i] == 1) {  // No �@ with 10 through 19
			cnumber.insert(0, beforeWan[(i%4)-1]);
		  //} else if ((i%4 = 3) && powers[i] == 2) {  // when to use liang3 vs. er4
		      //cnumber.insert(0, ALTTWO + beforeWan[(i%4)-1]);
		    } else {
			cnumber.insert(0, digits[powers[i]] + beforeWan[(i%4)-1]);
		    }
		} else {
		    if (canaddzero == true && inzero == false) { // Only insert one �s for all consecutive zeroes
			inzero = true;
			cnumber.insert(0, digits[powers[i]]);
		    }
		}
	    }
	}

	// Add the negative character
	if (negative == true) {
	    cnumber.insert(0, minus);
	}

        return cnumber.toString();
    }


    public static void main(String[] argc) {
	long enumber;

	if (argc.length == 0) {
	    enumber = -10309300932L;
	} else {
	    enumber = Integer.parseInt(argc[0]);
	}
        System.out.println(EnglishToChineseNumber(enumber));
    }


}

Anon7 - 2021