3 Mart 2013, Pazar
Neden bu kod rastgele dizeleri yazdırma "Merhaba Dünya" kullanarak mı?
Aşağıdaki yazdırma deyimi print "Merhaba Dünya". Biri bunu açıklayabilir mi?
System.out.println(randomString(-229985452) " " randomString(-147909649));
Ve randomString()
bu gibi görünüyor:
public static String randomString(int i)
{
Random ran = new Random(i);
StringBuilder sb = new StringBuilder();
while (true)
{
int k = ran.nextInt(27);
if (k == 0)
break;
sb.append((char)('`' k));
}
return sb.toString();
}
CEVAP
3 Mart 2013, Pazar
Diğer bir neden açıklamak cevaplar, ama nasıl:
new Random(-229985452).nextInt(27)
Yukarıda rasgele oluşturur ilk 6 numaraları:
8
5
12
12
15
0
ve new Random(-147909649).nextInt(27)
oluşturduğu ilk 6 numaraları:
23
15
18
12
4
0
Karakterin tamsayı gösterimini `
bu numaraları Ekle 96).
8 96 = 104 --> h
5 96 = 101 --> e
12 96 = 108 --> l
12 96 = 108 --> l
15 96 = 111 --> o
23 96 = 119 --> w
15 96 = 111 --> o
18 96 = 114 --> r
12 96 = 108 --> l
4 96 = 100 --> d
Bunu Paylaş:
Neden&; Merhaba&; '/' "...
Bu nasıl baskı&; Merhaba Dünya""?...
Neden Boş Dizeleri Bitiştirmek için Ge...
&; Kullanarak " " birden fazla ka...
Benimki temel C için trojan uyarısı ve...