A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
すでに、回答そのものを出していただいているようですが、あえて考え方の考え方の説明をしてみます。
(1)
1
121
12321
1234321
123454321
12345654321
1234567654321
まずは中央の行を含めて、左側だけなら簡単かなと着目してみました。
↓
下記のようになりますね。
(2)
1
12
123
1234
12345
123456
1234567
左寄せしてみました。
↓
(3)
1
12
123
1234
12345
123456
1234567
(3)を出力するプログラムを作れ、って言われたら『バカにするな!!』って怒りたいぐらい、簡単ですよね。
次に、(2)はというと、(3)が出力できるならこれも簡単。
(1)はというと、これも(2)が出力できるなら、簡単なんじゃないですか?
No.4
- 回答日時:
VBAです。
参考にしてください。Sub 数字でピラミッドを出力()
Dim mI As Integer
Dim wCnt As Integer
'
mI = 7 '←Inputされた数字
With ActiveSheet
.Cells.ClearContents
For wI = 1 To mI
wCnt = 0
For xI = 1 To wI * 2 - 1
If xI > wI Then
wCnt = wCnt - 1
Else
wCnt = wCnt + 1
End If
.Cells(wI, mI + 1 - wI).Offset(0, xI) = wCnt
Next
Next
End With
End Sub
'マクロ貼付
(1) Alt+F11 (ツール → マクロ → Visual Basic Editor) →「挿入」→「標準モジュール」で表示される画面に貼り付け
(2) 実行は、(F5を押す)又は、シート画面に戻って Alt+F8を押してマクロ一覧からマクロ名を選択して実行
No.3
- 回答日時:
例を見れば特徴はわかるじゃないですか。
1段目 1個
2段目 3
3段目 5
・・
と奇数になる。1個で始まり、両方に1つずつ、計2個増えるから当然。言い換えると奇数であるともいえる。
そしてその数の半分+1個目まで1ずつ増えて、そこから1づつ減少する。
VB6.0相当のエクセルVBAでやると(エクセル固有の部分は値を記録するCells()だけ。エクセル以外ならCells(()を配列と考えればよい。
)
Sub test01()
For i = 1 To 8
n = (i - 1) * 2 + 1
m = 1
For j = 1 To Int(n / 2)
Cells(i, m) = j
m = m + 1
Next
For j = Int(n / 2) + 1 To 1 Step -1
Cells(i, m) = j
m = m + 1
Next
Next i
End Sub
ーー
ピラミッド状に見せるには
エクセルのセルを利用した場合
Sub test02()
x = 8
For i = 1 To x
n = (i - 1) * 2 + 1
For k = 1 To x - i
Cells(i, k) = ""
Next k
m = k
For j = 1 To Int(n / 2)
Cells(i, m) = j
m = m + 1
Next
For j = Int(n / 2) + 1 To 1 Step -1
Cells(i, m) = j
m = m + 1
Next
Next i
End Sub
エクセルのセルを利用しない場合は、左前半の空白部と2桁数字の場合は数字の桁合わせに注意(コードの変更)が必要。
No.2
- 回答日時:
どう考えて、何をしたんだけど、どこがうまくいかない。
を書いてもらわないとなんとも解答のしようがない。
全くどう取り組んでよいのかわからないなら
・各行を文字列として考える
・各行を配列として考える
・各列を配列として考える
・マトリックスとして考える
どれを使ってもできる。 ということがヒントになるかな?
文字列が一番簡単な気がするけど、パフォーマンスを気にする場合は文字列を使うことはあまり賢い方法ではないこともある。
No.1
- 回答日時:
たとえば12321が、1つのセルに1つの文字、つまり5つのセルに数字が1つずつ入っているのか、それとも、12321という数字が1つのセルに入っているのか、でプログラムが変わって来ますよね。
この質問だと、それがどっちなのかが解りません。
試行錯誤したようですが、どんなことを試してみたのかも書いたほうが良いでしょうね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 場合の数、確率 30 円周上の鋭角三角形(偶数等分) 2 2023/07/07 04:56
- 数学 中3の数学で写真の問題がどうしても解けません。 「図のADBさえ分かれば解ける。」 ↓ 「DACを知 1 2023/01/17 19:58
- 数学 画像の中学2年生の数学の問題について教えていただきたいです。 三角形ADCが二等辺三角形であることと 2 2023/01/29 16:14
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- 数学 場合の数、確率 33 分配 1 2023/07/08 18:08
- 日本語 文章がまとまりませんT^T おかしいところ直していただけると助かります...! 私が入部したとき、大 6 2022/10/07 08:20
- Illustrator(イラストレーター) ワードに貼った画像のキャンバスと画像本体のサイズの調整 2 2022/05/19 18:31
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(プログラミング・Web制作) プログラミング python 3 2023/06/14 03:55
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
【Excel VBA】指定行以降をクリ...
-
ExcelVBAを使って、値...
-
TODAY()で設定したセルの日付...
-
VBAでセルをクリックする回...
-
【Excel】指定したセルの名前で...
-
DataGridViewのセル編集完了後...
-
screenupdatingが機能しなくて...
-
VBA初心者です。結合セルを保持...
-
エクセルvba:自己セルの情報取...
-
EXCELで変数をペーストしたい
-
連続する複数のセル値がすべて0...
-
VBA コピーして次の値まで貼り...
-
セル色なしの行一括削除
-
特定の文字を条件に行挿入とそ...
-
エクセルVBAでコピーして順...
-
クリックされたセルの位置を取...
-
Excel vbaで特定の文字以外が入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
【Excel】指定したセルの名前で...
-
VBAの計算で@が出てしまう件
-
Excelのプルダウンで2列分の情...
-
EXCELで変数をペーストしたい
-
VBA ユーザーフォーム ボタンク...
-
VBAでセルをクリックする回...
-
Excel VBA、 別ブックの最終行...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
-
VBAを使用した時間管理
-
”戻り値”が変化したときに、マ...
-
Sub 要具ライフ() ActiveSheet....
おすすめ情報