雷、風、闇、氷、炎
という5つの文字を並べた文字列があって
毎回
1文字目を4番目に
2文字目を3番目に
3文字目を1番目に
4文字目を5番目に
5文字目を2番目に
という感じで並び替えて、
97回目後の並び順を推算する方法について
まずは規則性を見つけること
並び順は6回目で最初に戻るという周期性があるから並べた回数に5で割って
得た余数で何回目の並び順と同じとわかります、
97÷5の余数は2ということで
97回は2回目と同じと推算できます
だから正解は
風,氷,炎,闇,雷
勿論こういうやつもプログラミングで計算できます、並び順を変えたいなら
「自分で自分を定義する関数」を使うべき!
C言語での解き方↓
#include <stdio.h>
#include <conio.h>
#include <string.h>
void change(int count,char *a, char *b, char *c, char* d, char* e) {
count -= 1;
if(count>=0)
change(count,c, e,b,a,d);
else
printf("%s,%s,%s,%s,%s\n", a, b, c, d, e);
}
int main() {
char a[3]="雷";
char *a_string = a;
char b[3]= "風";
char *b_string = b;
char c[3] = "闇";
char *c_string = c;
char d[3] = "氷";
char* d_string = d;
char e[3] = "炎";
char* e_string = e;
change(97, a_string, b_string, c_string, d_string,e_string);
_getch();
}
- 前ページ
- 次ページ