#include <stdio.h>
int count_cycle(int n);
int main() {
int N; scanf("%d", &N);
printf("%d",count_cycle(N));
return 0;
}
int count_cycle(int n) {
int N = n; int _N;
int count = 0;
int x, y;
while(_N!=N) {
x = N / 10;
y = N % 10;
_N = 10 * y + ((x+y)%10);
count++;
}
return count;
}
上に示した周期を持つ特定の自然数について、基本的なアルゴリズムを練習しているところです。しかし、このコードの結果は無限ループです。私の意図した擬似コードはこのようなものです。
function count_cycle
count = 0
==loop==
N = 10x + y (0 <= x,y <= 9)
N' = 10 * y + (x+y) mod 10
if N' == N then
break;
else then
N = N'
count++
continue;
====
return count
このコードを正しく機能させるにはどうすればよいですか?
_Nの初期化を見逃しているため、Nと等しくなることはなく、whileループに永久に留まります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加