#34174: 這到底哪裡錯了 :0


fabiowu20070806@gmail.com (可愛兔兔)

學校 : 國立臺灣師範大學附屬高級中學
編號 : 213394
來源 : [220.130.10.185]
最後登入時間 :
2023-12-29 15:54:42
a628. 8. Number Spiral -- HP CodeWars2007 | From: [101.12.88.215] | 發表日期 : 2023-03-02 20:47

#include #include using namespace std; int n, l, f=0; bool addition=true, x=true; int main() { cin>>n; int nmidx=(n-1)/2, nmidy=(n-1)/2; int num[100][100]={0}; for(int i=1;i

 
#34175: Re: 這到底哪裡錯了 :0


fabiowu20070806@gmail.com (可愛兔兔)

學校 : 國立臺灣師範大學附屬高級中學
編號 : 213394
來源 : [220.130.10.185]
最後登入時間 :
2023-12-29 15:54:42
a628. 8. Number Spiral -- HP CodeWars2007 | From: [101.12.88.215] | 發表日期 : 2023-03-02 20:49

#include <iostream>
#include <math.h>
using namespace std;
int n, l, f=0;
bool addition=true, x=true;
int main() {
  cin>>n;
  int nmidx=(n-1)/2, nmidy=(n-1)/2;
  int num[100][100]={0};
  for(int i=1;i<n;i++){
    for(int k=0;k<2;k++){
      for(int j=0;j<i;j++){
        if(addition){
          if(x)
            nmidx+=1;
          else
            nmidy-=1;
        }
        else{
          if(x)
            nmidx-=1;
          else
            nmidy+=1;
        }
        f++;
        num[nmidy][nmidx]=f;
      }
      x=!x;
    }  
    addition=!addition;
  }
  for(int i=0;i<n;i++){
    num[nmidy][nmidx+i]=num[nmidy][nmidx]+i;
  }
  string str;
  str=std::to_string(num[nmidy][nmidx+n-1]);
  for(int i=0;i<n;i++){
    for(int j=0;j<n;j++){
      cout.width(str.length()+2);
      cout.fill(' ');
      cout<<num[i][j];
    }
    cout<<"\n";
  }
  return 0;
}
 
//它跑掉了._



 
#34176: Re: 這到底哪裡錯了 :0


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
a628. 8. Number Spiral -- HP CodeWars2007 | From: [59.115.27.127] | 發表日期 : 2023-03-03 09:30

1.

      cout.width(str.length()+2);


1. 題目沒特別說寬度多少,不過從範例輸出可以看出要設成4

2. 多筆測資

 
#34188: Re: 這到底哪裡錯了 :0


wubaie (小億)

學校 : 不指定學校
編號 : 123253
來源 : [220.133.154.226]
最後登入時間 :
2024-05-16 22:24:49
a628. 8. Number Spiral -- HP CodeWars2007 | From: [111.240.59.151] | 發表日期 : 2023-03-04 16:41

#include #include using namespace std; int n, l, f=0; bool addition=true, x=true; int main() { cin>>n; int nmidx=(n-1)/2, nmidy=(n-1)/2; int num[100][100]={0}; for(int i=1;i


cout << setw(4) << setfill(' ') << num[i][j];

 
ZeroJudge Forum