# সংখ্যা ভেঙে দেখা — চিত্র ও পূর্ণ উদাহরণ

## 472 থেকে অঙ্ক বের করা

```mermaid
flowchart LR
    A["n = 472 | sum = 0"] -->|"digit = 2"| B["n = 47 | sum = 2"]
    B -->|"digit = 7"| C["n = 4 | sum = 9"]
    C -->|"digit = 4"| D["n = 0 | sum = 13"]
```

প্রতিটি তীরে `digit = n % 10`, `sum += digit`, `n //= 10`—এই তিনটি কাজ হচ্ছে। `n=0` হলে থামি। তাই 472-এর অঙ্কের যোগ 13।

## একই অঙ্ক দিয়ে উল্টো সংখ্যা

| ধাপ | নেওয়া অঙ্ক | আগের rev | `rev*10+digit` | বাকি n |
| --- | --- | --- | --- | --- |
| 1 | 2 | 0 | 2 | 47 |
| 2 | 7 | 2 | 27 | 4 |
| 3 | 4 | 27 | 274 | 0 |

```dsa
kind: array
title: "অঙ্ক একই, পড়ার ক্রম উল্টো"
steps:
  - label: "মূল সংখ্যা 472"
    values: [4, 7, 2]
    indices: false
    note: "ডানের অঙ্ক 2 আগে নিই।"
  - label: "উল্টো সংখ্যা 274"
    values: [2, 7, 4]
    indices: false
    note: "নতুন অঙ্ক যোগ করার আগে আগের মানকে 10 দিয়ে গুণ করি।"
```

120 উল্টালে integer হিসেবে 21 হয়; সামনে শূন্য রাখা দরকার হলে string ব্যবহার করো।

## Digital root: কেন বারবার একই কাজ

```mermaid
flowchart LR
    A["9875"] -->|"9+8+7+5"| B["29"]
    B -->|"2+9"| C["11"]
    C -->|"1+1"| D["2: এক অঙ্ক, শেষ"]
```

এখানে final answer 2। Positive n-এর জন্য `1+(n-1)%9`; n=0 হলে answer 0।

নিজে 305-এর অঙ্কের যোগ ও reverse বের করো। যাচাই: যোগ 8, reverse 503।

## ভাগফল, ভাগশেষ ও জোড়া

```dsa
kind: array
title: "17টি জিনিস, প্রতি বাক্সে সর্বোচ্চ 5টি"
steps:
  - label: "তিনটি পূর্ণ বাক্স ও দুইটি অবশিষ্ট"
    values: [5, 5, 5, 2]
    indices: false
    active: [3]
    note: "প্রথম তিনটি ঘর পূর্ণ বাক্স; শেষের 2 হলো ভাগশেষ।"
```

প্রতি বাক্সে 5টি রাখলে পূর্ণ বাক্স 3টি, বাকি 2টি: `17//5=3`, `17%5=2`। একইভাবে 7টি জিনিসকে দুটি করে ভাগ করলে 3টি পূর্ণ জোড়া ও 1টি অবশিষ্ট থাকে; তাই 7 বিজোড়।

## Palindrome ও nested loop

```dsa
kind: array
title: "Palindrome-এ দুই প্রান্ত থেকে পড়লেও একই অঙ্ক"
steps:
  - label: "121: উল্টালেও 121"
    values: [1, 2, 1]
    indices: false
    active: [0, 2]
    note: "দুই প্রান্তের 1 মেলে; মাঝের 2 নিজের সঙ্গেই মেলে।"
  - label: "123: উল্টালে 321"
    values: [1, 2, 3]
    indices: false
    active: [0, 2]
    note: "প্রথম তুলনাতেই 1 ও 3 আলাদা, তাই palindrome নয়।"
```

Nested loop-এর ছোট pattern:

| বাইরের loop: row | ভেতরের loop যে মানগুলো ছাপে | এই row-এ print |
| --- | --- | --- |
| 1 | 1 | 1টি |
| 2 | 1, 2 | 2টি |
| 3 | 1, 2, 3 | 3টি |

বাইরের loop row 1,2,3 নেয়; ভেতরের loop সেই row-এর 1 থেকে row পর্যন্ত column ছাপে। মোট print `1+2+3=6`টি।

[ধারণায় ফিরি](concept-notes.md) · [সব সমস্যা ও অনুশীলন](problems/README.md) · [মূল উৎস](source-map.md)
