[アルゴリズム] の二乗を計算する 1 n個の数字の数 1
スレッド:
S = 111の場合…11 (n桁 1, 十進法), S ^ 2を計算する.
入力
– 最初の行: テストの数をk個 (へ<= 40).
– K次の行, それぞれの行数n – 桁数 1 Sの. (1 <= A <= 1000000)
出力
– 各テスト記録の結果を得るために 1 現在.
例
入力:
2
1
2
出力:
1
121
ソリューション:
私は対称KQ 123を参照してください。…N…321. 例えば、111はn = 3 ^ 2 = 12321
しかし、nは気づく= 10はかなり右対称ではないようです.
最高経営責任者(CEO: のn = 13 すなわち我々1111111111111 ^ 2.
1111111111111 1111111111111 1111111111111 1111111111111 + 1111111111111 1111111111111 1111111111111 1111111111111 1111111111111 1111111111111 1111111111111 1111111111111 1111111111111 ========================= 1234567901234320987654321
私たちは、法律はもはや対称であることがわかりません. そして、私はこの意図を持っていた. 私はちょうど対称行くように書く, その後、次を実行します:
私は左のそれぞれで実行し、右、次のコードを持つことになります:
#include <iostream> #include <string> using namespace std; int main() { int k, n; cin>>k; for (int i=0; i<k; i++) { cin>>n; string s = ""; int temp = 0; // temp la phan du khi chi so cho 10. VD 13 thi temp la 1. int j = 1, ji = 1; // bat dau viet tu phai sang trai while (j>0) { // cong tung cap nhu hinh ((j+temp)%10) //sau do chen vao giua s.insert(0, 1, (char)((j+temp)%10+'0')); temp = (j+temp)/10; if (j==n) ji = -1; // quay nguoc lai khi du n so j += ji; } cout<<s<<endl; } return 0; }
上記のコードの後に, KQて次のようにいくつかのルールが描画される:
一連に分割されている 3 次のようにヘッダ部が構成されて :
+/ ヘッダ: 123456790123456790123456790… セクションの繰り返しすなわち 123456790 (-1)/9 = N1回.
+ ミドル: 123…X…32 X = nの – 9*N1.
+/ 終わり: N1回繰り返す 098765432 そしていくつかはある 1 やっと. 簡単にするために、我々は中央のセクションは、対称すなわちフォームで保つ 12321 次いで、それの前方端部に挿入される 1 最後に.
#include <iostream> #include <string> using namespace std; int main() { int k, n; cin>>k; for (int i=0; i<k; i++) { cin>>n; string s = "", s1 = "123456790", s2 = "098765432"; int n1 = (n-1)/9, n2 = n - 9*n1; // doan giua for (int i=1; i<=n2; i++) s.insert(s.length(), 1, (char)(i + '0')); for (int i=n2-1; i>0; i--) s.insert(s.length(), 1, (char)(i + '0')); // neu n tu 10 tro len if (n>9) { // doan dau for (int i=0; i<n1; i++) s.insert(0, s1); // doan cuoi for (int i=0; i<n1; i++) s.insert(s.length()-1, s2); } cout<<s<<endl; } return 0; }
イラストKQは= 13 kと入力し 5 数nは (14, 37, 30, 113, 352) それぞれの図に示されるように.
最近のコメント