forked from rpms/glibc
		
	
		
			
				
	
	
		
			362 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			362 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <wchar.h>
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| #include <locale.h>
 | |
| 
 | |
| wchar_t *numbers[301] = {
 | |
| 	L"ゼロ\n",
 | |
| 	L"いち\n",
 | |
| 	L"に\n",
 | |
| 	L"さん\n",
 | |
| 	L"よん\n",
 | |
| 	L"ご\n",
 | |
| 	L"ろく\n",
 | |
| 	L"なな\n",
 | |
| 	L"はち\n",
 | |
| 	L"きゅう\n",
 | |
| 	L"じゅう\n",
 | |
| 	L"じゅういち\n",
 | |
| 	L"じゅうに\n",
 | |
| 	L"じゅうさん\n",
 | |
| 	L"じゅうよん\n",
 | |
| 	L"じゅうご\n",
 | |
| 	L"じゅうろく\n",
 | |
| 	L"じゅうなな\n",
 | |
| 	L"じゅうはち\n",
 | |
| 	L"じゅうきゅう\n",
 | |
| 	L"にじゅう\n",
 | |
| 	L"にじゅういち\n",
 | |
| 	L"にじゅうに\n",
 | |
| 	L"にじゅうさん\n",
 | |
| 	L"にじゅうよん\n",
 | |
| 	L"にじゅうご\n",
 | |
| 	L"にじゅうろく\n",
 | |
| 	L"にじゅうなな\n",
 | |
| 	L"にじゅうはち\n",
 | |
| 	L"にじゅうきゅう\n",
 | |
| 	L"さんじゅう\n",
 | |
| 	L"さんじゅういち\n",
 | |
| 	L"さんじゅうに\n",
 | |
| 	L"さんじゅうさん\n",
 | |
| 	L"さんじゅうよん\n",
 | |
| 	L"さんじゅうご\n",
 | |
| 	L"さんじゅうろく\n",
 | |
| 	L"さんじゅうなな\n",
 | |
| 	L"さんじゅうはち\n",
 | |
| 	L"さんじゅうきゅう\n",
 | |
| 	L"よんじゅう\n",
 | |
| 	L"よんじゅういち\n",
 | |
| 	L"よんじゅうに\n",
 | |
| 	L"よんじゅうさん\n",
 | |
| 	L"よんじゅうよん\n",
 | |
| 	L"よんじゅうご\n",
 | |
| 	L"よんじゅうろく\n",
 | |
| 	L"よんじゅうなな\n",
 | |
| 	L"よんじゅうはち\n",
 | |
| 	L"よんじゅうきゅう\n",
 | |
| 	L"ごじゅう\n",
 | |
| 	L"ごじゅういち\n",
 | |
| 	L"ごじゅうに\n",
 | |
| 	L"ごじゅうさん\n",
 | |
| 	L"ごじゅうよん\n",
 | |
| 	L"ごじゅうご\n",
 | |
| 	L"ごじゅうろく\n",
 | |
| 	L"ごじゅうなな\n",
 | |
| 	L"ごじゅうはち\n",
 | |
| 	L"ごじゅうきゅう\n",
 | |
| 	L"ろくじゅう\n",
 | |
| 	L"ろくじゅういち\n",
 | |
| 	L"ろくじゅうに\n",
 | |
| 	L"ろくじゅうさん\n",
 | |
| 	L"ろくじゅうよん\n",
 | |
| 	L"ろくじゅうご\n",
 | |
| 	L"ろくじゅうろく\n",
 | |
| 	L"ろくじゅうなな\n",
 | |
| 	L"ろくじゅうはち\n",
 | |
| 	L"ろくじゅうきゅう\n",
 | |
| 	L"ななじゅう\n",
 | |
| 	L"ななじゅういち\n",
 | |
| 	L"ななじゅうに\n",
 | |
| 	L"ななじゅうさん\n",
 | |
| 	L"ななじゅうよん\n",
 | |
| 	L"ななじゅうご\n",
 | |
| 	L"ななじゅうろく\n",
 | |
| 	L"ななじゅうなな\n",
 | |
| 	L"ななじゅうはち\n",
 | |
| 	L"ななじゅうきゅう\n",
 | |
| 	L"はちじゅう\n",
 | |
| 	L"はちじゅういち\n",
 | |
| 	L"はちじゅうに\n",
 | |
| 	L"はちじゅうさん\n",
 | |
| 	L"はちじゅうよん\n",
 | |
| 	L"はちじゅうご\n",
 | |
| 	L"はちじゅうろく\n",
 | |
| 	L"はちじゅうなな\n",
 | |
| 	L"はちじゅうはち\n",
 | |
| 	L"はちじゅうきゅう\n",
 | |
| 	L"きゅうじゅう\n",
 | |
| 	L"きゅうじゅういち\n",
 | |
| 	L"きゅうじゅうに\n",
 | |
| 	L"きゅうじゅうさん\n",
 | |
| 	L"きゅうじゅうよん\n",
 | |
| 	L"きゅうじゅうご\n",
 | |
| 	L"きゅうじゅうろく\n",
 | |
| 	L"きゅうじゅうなな\n",
 | |
| 	L"きゅうじゅうはち\n",
 | |
| 	L"きゅうじゅうきゅう\n",
 | |
| 	L"ひゃく\n",
 | |
| 	L"ひゃくいち\n",
 | |
| 	L"ひゃくに\n",
 | |
| 	L"ひゃくさん\n",
 | |
| 	L"ひゃくよん\n",
 | |
| 	L"ひゃくご\n",
 | |
| 	L"ひゃくろく\n",
 | |
| 	L"ひゃくなな\n",
 | |
| 	L"ひゃくはち\n",
 | |
| 	L"ひゃくきゅう\n",
 | |
| 	L"ひゃくじゅう\n",
 | |
| 	L"ひゃくじゅういち\n",
 | |
| 	L"ひゃくじゅうに\n",
 | |
| 	L"ひゃくじゅうさん\n",
 | |
| 	L"ひゃくじゅうよん\n",
 | |
| 	L"ひゃくじゅうご\n",
 | |
| 	L"ひゃくじゅうろく\n",
 | |
| 	L"ひゃくじゅうなな\n",
 | |
| 	L"ひゃくじゅうはち\n",
 | |
| 	L"ひゃくじゅうきゅう\n",
 | |
| 	L"ひゃくにじゅう\n",
 | |
| 	L"ひゃくにじゅういち\n",
 | |
| 	L"ひゃくにじゅうに\n",
 | |
| 	L"ひゃくにじゅうさん\n",
 | |
| 	L"ひゃくにじゅうよん\n",
 | |
| 	L"ひゃくにじゅうご\n",
 | |
| 	L"ひゃくにじゅうろく\n",
 | |
| 	L"ひゃくにじゅうなな\n",
 | |
| 	L"ひゃくにじゅうはち\n",
 | |
| 	L"ひゃくにじゅうきゅう\n",
 | |
| 	L"ひゃくさんじゅう\n",
 | |
| 	L"ひゃくさんじゅういち\n",
 | |
| 	L"ひゃくさんじゅうに\n",
 | |
| 	L"ひゃくさんじゅうさん\n",
 | |
| 	L"ひゃくさんじゅうよん\n",
 | |
| 	L"ひゃくさんじゅうご\n",
 | |
| 	L"ひゃくさんじゅうろく\n",
 | |
| 	L"ひゃくさんじゅうなな\n",
 | |
| 	L"ひゃくさんじゅうはち\n",
 | |
| 	L"ひゃくさんじゅうきゅう\n",
 | |
| 	L"ひゃくよんじゅう\n",
 | |
| 	L"ひゃくよんじゅういち\n",
 | |
| 	L"ひゃくよんじゅうに\n",
 | |
| 	L"ひゃくよんじゅうさん\n",
 | |
| 	L"ひゃくよんじゅうよん\n",
 | |
| 	L"ひゃくよんじゅうご\n",
 | |
| 	L"ひゃくよんじゅうろく\n",
 | |
| 	L"ひゃくよんじゅうなな\n",
 | |
| 	L"ひゃくよんじゅうはち\n",
 | |
| 	L"ひゃくよんじゅうきゅう\n",
 | |
| 	L"ひゃくごじゅう\n",
 | |
| 	L"ひゃくごじゅういち\n",
 | |
| 	L"ひゃくごじゅうに\n",
 | |
| 	L"ひゃくごじゅうさん\n",
 | |
| 	L"ひゃくごじゅうよん\n",
 | |
| 	L"ひゃくごじゅうご\n",
 | |
| 	L"ひゃくごじゅうろく\n",
 | |
| 	L"ひゃくごじゅうなな\n",
 | |
| 	L"ひゃくごじゅうはち\n",
 | |
| 	L"ひゃくごじゅうきゅう\n",
 | |
| 	L"ひゃくろくじゅう\n",
 | |
| 	L"ひゃくろくじゅういち\n",
 | |
| 	L"ひゃくろくじゅうに\n",
 | |
| 	L"ひゃくろくじゅうさん\n",
 | |
| 	L"ひゃくろくじゅうよん\n",
 | |
| 	L"ひゃくろくじゅうご\n",
 | |
| 	L"ひゃくろくじゅうろく\n",
 | |
| 	L"ひゃくろくじゅうなな\n",
 | |
| 	L"ひゃくろくじゅうはち\n",
 | |
| 	L"ひゃくろくじゅうきゅう\n",
 | |
| 	L"ひゃくななじゅう\n",
 | |
| 	L"ひゃくななじゅういち\n",
 | |
| 	L"ひゃくななじゅうに\n",
 | |
| 	L"ひゃくななじゅうさん\n",
 | |
| 	L"ひゃくななじゅうよん\n",
 | |
| 	L"ひゃくななじゅうご\n",
 | |
| 	L"ひゃくななじゅうろく\n",
 | |
| 	L"ひゃくななじゅうなな\n",
 | |
| 	L"ひゃくななじゅうはち\n",
 | |
| 	L"ひゃくななじゅうきゅう\n",
 | |
| 	L"ひゃくはちじゅう\n",
 | |
| 	L"ひゃくはちじゅういち\n",
 | |
| 	L"ひゃくはちじゅうに\n",
 | |
| 	L"ひゃくはちじゅうさん\n",
 | |
| 	L"ひゃくはちじゅうよん\n",
 | |
| 	L"ひゃくはちじゅうご\n",
 | |
| 	L"ひゃくはちじゅうろく\n",
 | |
| 	L"ひゃくはちじゅうなな\n",
 | |
| 	L"ひゃくはちじゅうはち\n",
 | |
| 	L"ひゃくはちじゅうきゅう\n",
 | |
| 	L"ひゃくきゅうじゅう\n",
 | |
| 	L"ひゃくきゅうじゅういち\n",
 | |
| 	L"ひゃくきゅうじゅうに\n",
 | |
| 	L"ひゃくきゅうじゅうさん\n",
 | |
| 	L"ひゃくきゅうじゅうよん\n",
 | |
| 	L"ひゃくきゅうじゅうご\n",
 | |
| 	L"ひゃくきゅうじゅうろく\n",
 | |
| 	L"ひゃくきゅうじゅうなな\n",
 | |
| 	L"ひゃくきゅうじゅうはち\n",
 | |
| 	L"ひゃくきゅうじゅうきゅう\n",
 | |
| 	L"にひゃく\n",
 | |
| 	L"にひゃくいち\n",
 | |
| 	L"にひゃくに\n",
 | |
| 	L"にひゃくさん\n",
 | |
| 	L"にひゃくよん\n",
 | |
| 	L"にひゃくご\n",
 | |
| 	L"にひゃくろく\n",
 | |
| 	L"にひゃくなな\n",
 | |
| 	L"にひゃくはち\n",
 | |
| 	L"にひゃくきゅう\n",
 | |
| 	L"にひゃくじゅう\n",
 | |
| 	L"にひゃくじゅういち\n",
 | |
| 	L"にひゃくじゅうに\n",
 | |
| 	L"にひゃくじゅうさん\n",
 | |
| 	L"にひゃくじゅうよん\n",
 | |
| 	L"にひゃくじゅうご\n",
 | |
| 	L"にひゃくじゅうろく\n",
 | |
| 	L"にひゃくじゅうなな\n",
 | |
| 	L"にひゃくじゅうはち\n",
 | |
| 	L"にひゃくじゅうきゅう\n",
 | |
| 	L"にひゃくにじゅう\n",
 | |
| 	L"にひゃくにじゅういち\n",
 | |
| 	L"にひゃくにじゅうに\n",
 | |
| 	L"にひゃくにじゅうさん\n",
 | |
| 	L"にひゃくにじゅうよん\n",
 | |
| 	L"にひゃくにじゅうご\n",
 | |
| 	L"にひゃくにじゅうろく\n",
 | |
| 	L"にひゃくにじゅうなな\n",
 | |
| 	L"にひゃくにじゅうはち\n",
 | |
| 	L"にひゃくにじゅうきゅう\n",
 | |
| 	L"にひゃくさんじゅう\n",
 | |
| 	L"にひゃくさんじゅういち\n",
 | |
| 	L"にひゃくさんじゅうに\n",
 | |
| 	L"にひゃくさんじゅうさん\n",
 | |
| 	L"にひゃくさんじゅうよん\n",
 | |
| 	L"にひゃくさんじゅうご\n",
 | |
| 	L"にひゃくさんじゅうろく\n",
 | |
| 	L"にひゃくさんじゅうなな\n",
 | |
| 	L"にひゃくさんじゅうはち\n",
 | |
| 	L"にひゃくさんじゅうきゅう\n",
 | |
| 	L"にひゃくよんじゅう\n",
 | |
| 	L"にひゃくよんじゅういち\n",
 | |
| 	L"にひゃくよんじゅうに\n",
 | |
| 	L"にひゃくよんじゅうさん\n",
 | |
| 	L"にひゃくよんじゅうよん\n",
 | |
| 	L"にひゃくよんじゅうご\n",
 | |
| 	L"にひゃくよんじゅうろく\n",
 | |
| 	L"にひゃくよんじゅうなな\n",
 | |
| 	L"にひゃくよんじゅうはち\n",
 | |
| 	L"にひゃくよんじゅうきゅう\n",
 | |
| 	L"にひゃくごじゅう\n",
 | |
| 	L"にひゃくごじゅういち\n",
 | |
| 	L"にひゃくごじゅうに\n",
 | |
| 	L"にひゃくごじゅうさん\n",
 | |
| 	L"にひゃくごじゅうよん\n",
 | |
| 	L"にひゃくごじゅうご\n",
 | |
| 	L"にひゃくごじゅうろく\n",
 | |
| 	L"にひゃくごじゅうなな\n",
 | |
| 	L"にひゃくごじゅうはち\n",
 | |
| 	L"にひゃくごじゅうきゅう\n",
 | |
| 	L"にひゃくろくじゅう\n",
 | |
| 	L"にひゃくろくじゅういち\n",
 | |
| 	L"にひゃくろくじゅうに\n",
 | |
| 	L"にひゃくろくじゅうさん\n",
 | |
| 	L"にひゃくろくじゅうよん\n",
 | |
| 	L"にひゃくろくじゅうご\n",
 | |
| 	L"にひゃくろくじゅうろく\n",
 | |
| 	L"にひゃくろくじゅうなな\n",
 | |
| 	L"にひゃくろくじゅうはち\n",
 | |
| 	L"にひゃくろくじゅうきゅう\n",
 | |
| 	L"にひゃくななじゅう\n",
 | |
| 	L"にひゃくななじゅういち\n",
 | |
| 	L"にひゃくななじゅうに\n",
 | |
| 	L"にひゃくななじゅうさん\n",
 | |
| 	L"にひゃくななじゅうよん\n",
 | |
| 	L"にひゃくななじゅうご\n",
 | |
| 	L"にひゃくななじゅうろく\n",
 | |
| 	L"にひゃくななじゅうなな\n",
 | |
| 	L"にひゃくななじゅうはち\n",
 | |
| 	L"にひゃくななじゅうきゅう\n",
 | |
| 	L"にひゃくはちじゅう\n",
 | |
| 	L"にひゃくはちじゅういち\n",
 | |
| 	L"にひゃくはちじゅうに\n",
 | |
| 	L"にひゃくはちじゅうさん\n",
 | |
| 	L"にひゃくはちじゅうよん\n",
 | |
| 	L"にひゃくはちじゅうご\n",
 | |
| 	L"にひゃくはちじゅうろく\n",
 | |
| 	L"にひゃくはちじゅうなな\n",
 | |
| 	L"にひゃくはちじゅうはち\n",
 | |
| 	L"にひゃくはちじゅうきゅう\n",
 | |
| 	L"にひゃくきゅうじゅう\n",
 | |
| 	L"にひゃくきゅうじゅういち\n",
 | |
| 	L"にひゃくきゅうじゅうに\n",
 | |
| 	L"にひゃくきゅうじゅうさん\n",
 | |
| 	L"にひゃくきゅうじゅうよん\n",
 | |
| 	L"にひゃくきゅうじゅうご\n",
 | |
| 	L"にひゃくきゅうじゅうろく\n",
 | |
| 	L"にひゃくきゅうじゅうなな\n",
 | |
| 	L"にひゃくきゅうじゅうはち\n",
 | |
| 	L"にひゃくきゅうじゅうきゅう\n",
 | |
| 	L"さんびゃく\n",
 | |
| };
 | |
| 
 | |
| long offset[301];
 | |
| 
 | |
| int main(int argc, char **argv)
 | |
| {
 | |
| 	int i, n;
 | |
| 	FILE *fp;
 | |
| 	char *s, buf[256];
 | |
| 	wchar_t wbuf[64];
 | |
| 
 | |
| #ifdef UTF8
 | |
| 	setlocale(LC_ALL, "en_US.utf8");
 | |
| #else
 | |
| 	setlocale(LC_ALL, "en_US");
 | |
| #endif
 | |
| 	fp = fopen("output.txt", "w+");
 | |
| 	if (fp == NULL) {
 | |
| 		perror("fopen");
 | |
| 		exit(1);
 | |
| 	}
 | |
| 	for (i = 0; i <= 300; i++) {
 | |
| 		offset[i] = ftell(fp);
 | |
| 		if (fputws(numbers[i], fp) == -1) {
 | |
| 			perror("fputws");
 | |
| 			exit(1);
 | |
| 		}
 | |
| 	}
 | |
| #ifdef TESTREAD
 | |
| 	fclose(fp);
 | |
| 	fp = fopen("output.txt", "r");
 | |
| #endif
 | |
| 	for ( ; ; ) {
 | |
| 		s = fgets(buf, 256, stdin);
 | |
| 		n = atoi(buf);
 | |
| 		if (s == NULL || n < 0 || n > 300)
 | |
| 			break;
 | |
| 		if (fseek(fp, offset[n], SEEK_SET) == -1) {
 | |
| 			perror("fseek");
 | |
| 			exit(1);
 | |
| 		}
 | |
| #ifdef NOFTELL
 | |
| 		printf("%d: (%ld) ", n, offset[n]);
 | |
| #else
 | |
| 		printf("%d: (%ld->%ld) ", n, offset[n], ftell(fp));
 | |
| #endif
 | |
| 		fgetws(wbuf, 64, fp);
 | |
| 		wcstombs(buf, wbuf, 256);
 | |
| 		printf("%s", buf);
 | |
| 	}
 | |
| 	fclose(fp);
 | |
| 	return 0;
 | |
| }
 |