fork download
  1. #include <stdio.h>
  2.  
  3. #define MAX_DIGITS 50 // 配列の要素数を定義
  4.  
  5. // 3の累乗を計算し、配列resultに格納する関数
  6. void power3(unsigned long result[]) {
  7. result[0] = 1; // 初期値は3^0 = 1
  8.  
  9. for (int i = 1; i <= 99; i++) {
  10. unsigned long carry = 0; // 桁上がりを保存する変数
  11. for (int j = 0; j < MAX_DIGITS; j++) {
  12. unsigned long temp = result[j] * 3 + carry;
  13. result[j] = temp % 10000000; // 7桁ごとに分ける
  14. carry = temp / 10000000; // 桁上がり
  15. }
  16.  
  17. // 各ステップの結果を出力
  18. printf("n= %2d: ", i);
  19. print_result(result);
  20. }
  21. }
  22.  
  23. // 計算結果を表示する関数
  24. void print_result(unsigned long result[]) {
  25. int started = 0; // 最初の非ゼロ桁を見つけるためのフラグ
  26. for (int i = MAX_DIGITS - 1; i >= 0; i--) {
  27. if (started) {
  28. printf("%07lu", result[i]); // 7桁ゼロ埋めで表示
  29. } else if (result[i] != 0) {
  30. printf("%lu", result[i]); // 最初の非ゼロ桁はゼロ埋めしない
  31. started = 1;
  32. }
  33. }
  34. printf("\n"); // 最後に改行
  35. }
  36.  
  37. int main() {
  38. unsigned long result[MAX_DIGITS] = {0}; // 配列を0で初期化
  39. power3(result); // 3の累乗を計算
  40.  
  41. return 0;
  42. }
  43.  
  44.  
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
n=  1: 3
n=  2: 9
n=  3: 27
n=  4: 81
n=  5: 243
n=  6: 729
n=  7: 2187
n=  8: 6561
n=  9: 19683
n= 10: 59049
n= 11: 177147
n= 12: 531441
n= 13: 1594323
n= 14: 4782969
n= 15: 14348907
n= 16: 43046721
n= 17: 129140163
n= 18: 387420489
n= 19: 1162261467
n= 20: 3486784401
n= 21: 10460353203
n= 22: 31381059609
n= 23: 94143178827
n= 24: 282429536481
n= 25: 847288609443
n= 26: 2541865828329
n= 27: 7625597484987
n= 28: 22876792454961
n= 29: 68630377364883
n= 30: 205891132094649
n= 31: 617673396283947
n= 32: 1853020188851841
n= 33: 5559060566555523
n= 34: 16677181699666569
n= 35: 50031545098999707
n= 36: 150094635296999121
n= 37: 450283905890997363
n= 38: 1350851717672992089
n= 39: 4052555153018976267
n= 40: 12157665459056928801
n= 41: 36472996377170786403
n= 42: 109418989131512359209
n= 43: 328256967394537077627
n= 44: 984770902183611232881
n= 45: 2954312706550833698643
n= 46: 8862938119652501095929
n= 47: 26588814358957503287787
n= 48: 79766443076872509863361
n= 49: 239299329230617529590083
n= 50: 717897987691852588770249
n= 51: 2153693963075557766310747
n= 52: 6461081889226673298932241
n= 53: 19383245667680019896796723
n= 54: 58149737003040059690390169
n= 55: 174449211009120179071170507
n= 56: 523347633027360537213511521
n= 57: 1570042899082081611640534563
n= 58: 4710128697246244834921603689
n= 59: 14130386091738734504764811067
n= 60: 42391158275216203514294433201
n= 61: 127173474825648610542883299603
n= 62: 381520424476945831628649898809
n= 63: 1144561273430837494885949696427
n= 64: 3433683820292512484657849089281
n= 65: 10301051460877537453973547267843
n= 66: 30903154382632612361920641803529
n= 67: 92709463147897837085761925410587
n= 68: 278128389443693511257285776231761
n= 69: 834385168331080533771857328695283
n= 70: 2503155504993241601315571986085849
n= 71: 7509466514979724803946715958257547
n= 72: 22528399544939174411840147874772641
n= 73: 67585198634817523235520443624317923
n= 74: 202755595904452569706561330872953769
n= 75: 608266787713357709119683992618861307
n= 76: 1824800363140073127359051977856583921
n= 77: 5474401089420219382077155933569751763
n= 78: 16423203268260658146231467800709255289
n= 79: 49269609804781974438694403402127765867
n= 80: 147808829414345923316083210206383297601
n= 81: 443426488243037769948249630619149892803
n= 82: 1330279464729113309844748891857449678409
n= 83: 3990838394187339929534246675572349035227
n= 84: 11972515182562019788602740026717047105681
n= 85: 35917545547686059365808220080151141317043
n= 86: 107752636643058178097424660240453423951129
n= 87: 323257909929174534292273980721360271853387
n= 88: 969773729787523602876821942164080815560161
n= 89: 2909321189362570808630465826492242446680483
n= 90: 8727963568087712425891397479476727340041449
n= 91: 26183890704263137277674192438430182020124347
n= 92: 78551672112789411833022577315290546060373041
n= 93: 235655016338368235499067731945871638181119123
n= 94: 706965049015104706497203195837614914543357369
n= 95: 2120895147045314119491609587512844743630072107
n= 96: 6362685441135942358474828762538534230890216321
n= 97: 19088056323407827075424486287615602692670648963
n= 98: 57264168970223481226273458862846808078011946889
n= 99: 171792506910670443678820376588540424234035840667