C言語で数値の最初と最後の桁の合計を求める方法
数値の最初と最後の桁の合計は、C言語を使って以下のアルゴリズムを実装することで簡単に求めることができます。この記事では、アルゴリズムの手順と実際のサンプルプログラム、さらに配列内の全要素の合計を求める方法についても解説します。
アルゴリズム
まず、数値の最初と最後の桁の合計を求めるための基本的なアルゴリズムを確認しましょう。
START
Step 1: int型の変数 no、sum を宣言する
Step 2: 実行時に数値を読み込む
Step 3: sum = no % 10 を計算する(最後の桁を取得)
Step 4: no > 9 の間、以下を繰り返す
no = no / 10
Step 5: sum = sum + no を計算する(最初の桁を加算)
Step 6: sum を出力する
STOP仕組みのポイント
- no % 10:10で割った余りを求めることで、数値の最後の桁を取得できます。
- no / 10:10で割り続けることで桁を一つずつ削り、ループが終わった時点で残る1桁の数が最初の桁になります。
サンプルプログラム
以下は、数値の最初と最後の桁の合計を求めるCプログラムです。
#include <stdio.h>
int main(){
unsigned int no, sum;
printf("enter any number:");
scanf("%u", &no);
sum = no % 10; // 最後の桁を取得
while(no > 9){
no = no / 10; // 桁を削っていく
}
sum = sum + no; // 最初の桁を加算
printf("sum of first and last digit is:%d", sum);
return 0;
}実行結果
このプログラムを実行すると、次のような出力が得られます。
enter any number:1242353467 sum of first and last digit is:8
入力された数値 1242353467 の場合、最初の桁は「1」、最後の桁は「7」であるため、その合計は 8 となります。
応用:配列の全要素の合計を求めるプログラム
続いて、同じくC言語を用いて、配列内の全要素の合計を計算するプログラムを紹介します。
サンプルコード
#include<stdio.h>
void main(){
// 配列の宣言と初期化//
int array[5] = {10, 20, 30, 40, 50};
int i, sum = 0;
// forループで各要素を順番に処理//
for(i = 0; i < 5; i++){
// 要素を合計に加算//
sum = sum + array[i];
}
// 合計を表示//
printf("Sum of elements in the array is : %d\n", sum);
}実行結果
このプログラムを実行すると、次のような出力が得られます。
Sum of elements in the array is : 150
配列 {10, 20, 30, 40, 50} の全要素をforループで順に足し合わせることで、合計値 150 が求められます。
まとめ
剰余演算子(%)と除算(/)を組み合わせれば、数値の特定の桁を簡単に取り出すことができます。また、forループを活用すれば配列の集計処理もシンプルに記述できます。これらはC言語の基礎的なテクニックであり、さまざまなプログラムに応用できるので、ぜひ覚えておきましょう。
-
C++とオイラー特性でサッカーボールの五角形・六角形の数を求める方法
サッカーボールをよく見ると、黒い五角形と白い六角形がパズルのように組み合わさり、完璧な球体を形作っていることがわかります。本記事では、オイラー特性(Euler characteristic)という数学的手法を用いて、サッカーボール上に存在する五角形と六角形の数を求める方法を解説し、最後にC++での実装例も紹介します。 オイラー特性とは オイラー特性とは、位相空間における図形や構造の特徴を表す数値です。球面の場合、オイラー特性は常に2になることが知られており、この性質を利用することで、サッカーボール上の五角形と六角形の数を計算できます。 オイラー特性では、以下の要素を使用します。 χ(S) —
-
C++でN階乗の合計の下一桁(一の位)を求める方法
この記事では、C++を使って「1! + 2! + ... + N!」という階乗の合計の下一桁(一の位)を求める方法を解説します。例えばN = 3の場合、1! + 2! + 3! = 9 となるため答えは9、N = 4の場合は 1! + 2! + 3! + 4! = 33 となり、下一桁は3になります。階乗の下一桁の重要な性質この問題を解く鍵となるのは、5以上の数の階乗の下一桁が必ず0になるという性質です。5! = 120、6! = 720、7! = 5040 のように、5!以降はすべて一の位が0になります。これは、5以上の階乗には必ず因数2と5のペアが含まれ、10の倍数になるためです。したがっ