結果
問題 |
No.634 硬貨の枚数1
|
ユーザー |
|
提出日時 | 2018-05-10 23:48:26 |
言語 | C (gcc 13.3.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 611 bytes |
コンパイル時間 | 254 ms |
コンパイル使用メモリ | 28,800 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-28 03:31:37 |
合計ジャッジ時間 | 3,373 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 RE * 2 |
other | AC * 59 WA * 4 RE * 12 |
ソースコード
#include<stdio.h> int sankaku(int k) { int num = k * (k + 1) / 2; return num; } int main(void) { int N; int tri[10000]; int tri1, tri2; int k = 0; int m = 0; scanf("%d", &N); tri[0] = 0; for (int j = 1; tri[j-1] < 1000000; j++) { tri[j] = sankaku(j); } //1つか2つの三角数のどちらであるかを判定 do{ k++; tri1 = tri[k]; if (N == tri1) { printf("1\n"); return 1; } m = k - 1; do{ m++; tri2 = tri[k] + tri[m]; if (N == tri2) { printf("2\n"); return 2; } } while (N > tri2); } while (N > tri1); printf("3\n"); return 0; }