#include <stdio.h>
int main( ){
//
char s[ ]="012345"; int n = 5;
int i, k; char c;
printf("%s\n", s);
while(1){
for(k = n-1; k >= 0; k--){
if(s[k] < s[k+1]) break;
}
if(k < 0) break;
for(i = n; i > k; i--){
if(s[i] > s[k]) break;
}
c = s[k]; s[k] = s[i]; s[i] = c;
for(i = 0; i < (n-k)/2; i++){
c = s[k+1+i];
s[k+1+i] = s[n-i]; s[n-i] = c;
}
printf("%s\n", s);
}
/*-----------------------------------------
//
int a[8]={7, 2, 5, 1, 4, 9, 6, 3};
int b[8], n, m, n2, mn;
for(n = 2; n <= 8; n += n){
for(m = 0; m < 8/n; m++){
n2 = n/2; mn = m*n;
i = mn; j = mn + n2;
while(i < mn+n2 && j < mn+n){
if(a[i] < a[j]){b[k] = a[i]; k++; i++;}
else{b[k] = a[j]; k++; j++;}
}
while(i < mn+n2){b[k] = a[i]; k++; i++;}
while(j < mn+n){b[k] = a[j]; k++; j++;}
}
for(k = 0; k < 8; k++){a[k] = b[k];}
}
for(k = 0; k < 8; k++){
printf("%d, ", a[k]);
}
printf("\n");
//
int year, month;
int m[13]={0, 1, -2, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 };
int u, n, t, y;// uruu, nen, tsuki, youbi
int k;
printf("年=");
scanf("%d", &year);
printf("月=");
scanf("%d", &month);
n = 2000; y = 6;
while(n > year){
n--;
u = n%400 == 0 || n%100 != 0 && n%4 == 0;
y += 6 - u; y %= 7;
}
while(n < year){
u = n%400 == 0 || n%100 != 0 && n%4 == 0;
y += 1 + u; y %= 7; n++;
}
u = n%400 == 0 || n%100 != 0 && n%4 == 0;
for(t = 1; t < month; t++){
if(t == 2){y += u;}
y += 2 + m[t]; y %= 7;
}
//printf("n = %d, t = %d, y = %d\n", n, t, y);
printf(" 日 月 火 水 木 金 土\n");
for(k = y; k > 0; k--) printf(" ");
for(k = 1; k <= 30 + m[t]; k++){
printf("%3d", k);
if((k+y)%7 == 0) printf("\n");
}
//
double a, eb, y;
double lb=0, ub;
printf("a="); scanf("%lf", &a);
if(a <= 0) return 0; ub = a;
printf("eb="); scanf("%lf", &eb);
while(1){
y = (lb + ub)/2;
if(y*y < a){lb = y;}
else{ub = y;}
if(ub-lb < eb){break;}
}
printf("a の平方根は %f\n", y);
//
double x[10], y;
int m[10], n, k;
printf("y = "); scanf("%lf", &y);
printf("n = "); scanf("%d", &n);
if(n > 1000){return 0;}
x[0] = y; m[0] = 1;
for(k = 0; n > m[k]; k++){
x[k+1] = x[k]*x[k];
m[k+1] = m[k]*2;
}printf("%d\n", k);
k--;
for(y = 1; n > 0; k--){
if(n >= m[k]){
y *= x[k]; n -= m[k];
}
}
printf("y^n = %e\n", y);
/*-----------------------------------------
//
double x[10], y;
int m[10], n, k;
printf("y = "); scanf("%lf", &y);
printf("n = "); scanf("%d", &n);
x[0] = y; m[0] = 1;
for(k = 0; n > m[k]; k++){
x[k+1] = x[k]*x[k];
m[k+1] = m[k]*2;
}
k--;
for(y = 1; n > 0; k--){
if(n >= m[k]){
y *= x[k]; n -= m[k];
}
}
printf("y^n = %f\n", y);
//
int m[10], n1, n2, n3, k;
for(k = 0; k < 10; k++){
printf("m[%d] = ", k);
scanf("%d", &m[k]);
}
n1 = 0;
if(m[n1] >= m[1]){
n1 = 1; n2 = 0;
}else{n2 = 1;}
if(m[n1] >= m[2]){
n3 = n2; n2 = n1; n1 = 2;
}else if(m[n2] >= m[2]){
n3 = n2; n2 = 2;
}else{
n3 = 2;
}
for(k = 3; k < 10; k++){
if(m[n1] >= m[k]){
n3 = n2; n2 = n1; n1 = k;
}else if(m[n2] >= m[k]){
n3 = n2; n2 = k;
}else if(m[n3] >= m[k]){
n3 = k;
}
}
if(m[n3] > m[n2] &&
m[n2] > m[n1])
{
printf("ブービーは %d\n", n2);
}else{
printf("ブービーはなし\n");
}
//
char s[80]="Hello, world.";
int k, n=0;
while(s[n] != 0){n++;}
if(n > 75){return 0;}
for(k = n - 1; k >= 0; k--){
s[k+4] = s[k];
}
for(k = 0; k < 4; k++){
s[k] = ' ';
}
printf("%s\n", s);
//
int m[10], k, n;
double a, v, y;
for(y = k = 0; k < 10; k++){
printf("m[%d] = ", k);
scanf("%d", &m[k]);
y += m[k];
if(m[k] == 0){break;}
}
if(k == 0){return 0;}
n = k; a = y / n;
for(y = k = 0; k < n; k++){
y += (m[k] - a)*(m[k] - a);
}
v = y / n;
printf("%f, %f\n", a, v);
//
char s[40], c; int n, k=0;
printf("n = "); scanf("%d", &n);
while(n > 0){
s[k] = n % 2; n /=2; k++;
}
while(k > 0){
k--; printf("%d", s[k]);
}
printf("\n");
//
char s[40], c; int n, k=0;
printf("n = "); scanf("%d", &n);
while(n > 0){
s[k] = n % 2; n = n / 2; k++;
}
while(k > 0){
k--; printf("%d", s[k]);
}
printf("\n");
//
char s[80]=
"Good morning. \0"
"Good afternoon.\0"
"Good night. \0"
"Good bye. \0";
char c; int k;
printf("c = "); scanf("%c", &c);
switch(c){
case 'm': k = 0; break;
case 'a': k = 16; break;
case 'n': k = 32; break;
default: k = 48;
}
printf("%s\n", s+k);
//
int m1[4]={3, 2, 5, 6};
int m2[4], n=1380;
if(n/500 < m1[0]){m2[0] = n / 500;}
else{m2[0] = m1[0];}
n -= m2[0]*500;
if(n/100 < m1[1]){m2[1] = n / 100;}
else{m2[1] = m1[1];}
n -= m2[1]*100;
if(n/50 < m1[2]){m2[2] = n / 50;}
else{m2[2] = m1[2];}
n -= m2[2]*50;
m2[3] = n / 10;
printf("500円:%d枚\n", m2[0]);
printf("100円:%d枚\n", m2[1]);
printf(" 50円:%d枚\n", m2[2]);
printf(" 10円:%d枚\n", m2[3]);
//
double a, b, c, y;
printf("三角形の三辺の長さを長い順"
"に入力:\n");
scanf("%lf %lf %lf", &a, &b, &c);
printf("三角形は");
if(a >= b && b >= c && c > 0){
y = a*a - b*b - c*c;
if(y < 0){
printf("鋭角三角形\n");
}else if(y == 0){
printf("直角三角形\n");
}else{
printf("鈍角三角形\n");
}
}else{
printf("不当なデータ\n");
}
//
int m1[4]={3, 2, 5, 6};
int m2[4], n=1380;
m2[0] = n/500; n -= m2[0]*500;
if(m2[0] > m1[0]){
m2[0] = m1[0];
}
printf("500円:%d枚\n", m2[0]);
printf("100円:%d枚\n", m2[1]);
printf(" 50円:%d枚\n", m2[2]);
printf(" 10円:%d枚\n", m2[3]);
-----------------------------------------*/
fflush(stdin); getchar( );
return 0;
}