.NET開発者のためのブログメディア
[C#]剰余演算子(%)での余りの求め方とは?配列やList要素に対する余り・マイナス値に対する余り
- SE
- C#で余りを出すには剰余演算子(%)をどのように使えばいいのですか。
- PM
- それでは、今回はC#で剰余演算子(%)の基本的な使い方や配列やList要素に対する使い方、商と余りを同時に求める方法、マイナス値に対する剰余についてご紹介いたしましょう。
目次
[C#]剰余演算子(%)での余りの求め方とは?
今回は、C#での剰余演算子(%)の使い方について説明します。剰余演算子の基本的な使い方、配列やList要素に対する使い方、商と余りを同時に求める方法、マイナス値に対する余りの算出方法について紹介します。
また、分から時分を求める方法やFizzBuzz問題を解く方法についても紹介します。
C#での剰余演算子(%)の使い方に興味のある方はぜひご覧ください。
基本的な使い方
C#での余りを算出する基本的な使い方を紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
using System;
public class Hello{
public static void Main(){
// 10を4で割った余り
Console.WriteLine(10 % 4); // 2
// 3を2で割った余り
Console.WriteLine(3 % 2); // 1
// 6を3で割った余り
Console.WriteLine(6 % 3); // 0
// 1~10が偶数か奇数か
for(int i = 1; i <= 10; i++){
if(i % 2 == 1){
Console.WriteLine("{0}は奇数です。", i);
}else{
Console.WriteLine("{0}は偶数です。", i);
}
}
}
}
|
実行結果は以下のようになります。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
2
1
0
1は奇数です。
2は偶数です。
3は奇数です。
4は偶数です。
5は奇数です。
6は偶数です。
7は奇数です。
8は偶数です。
9は奇数です。
10は偶数です。
|
配列やList要素に対する余り
C#での、配列やListの全要素に対する余りを算出する方法を紹介します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
using System;
using System.Collections.Generic;
using System.Linq;
public class Hello{
public static void Main(){
// 初期化
var mylist = new List<int>(){ 2, 6, 3, 8, 4, 1 };
int[] myarray = { 1, 4, 5, 4, 7, 8 };
// Select
var result1 = mylist.Select(x => x % 3); // List要素を3で割った余り
var result2 = myarray.Select(x => x % 3); // 配列要素を3で割った余り
// 結果表示
Console.WriteLine("{0}", string.Join(",", result1)); // 2,0,0,2,1,1
Console.WriteLine("{0}", string.Join(",", result2)); // 1,1,2,1,1,2
}
}
|
実行結果は以下のようになります。
1
2
|
2,0,0,2,1,1
1,1,2,1,1,2
|
LINQを使用して、すべての要素に対して余りを求められます。
商と余りを同時に求める
C#での、商と余りを同時に求める方法を紹介します。Math.DivRem関数を使用します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
using System;
public class Hello{
public static void Main(){
int rem;
int div = Math.DivRem(10, 4, out rem);
Console.WriteLine("10/4 = {0}余り{1}", div, rem); // 10/4 = 2余り2
div = Math.DivRem(3, 2, out rem);
Console.WriteLine("3/2 = {0}余り{1}", div, rem); // 3/2 = 1余り1
div = Math.DivRem(6, 3, out rem);
Console.WriteLine("6/3 = {0}余り{1}", div, rem); // 6/3 = 2余り0
}
}
|
実行結果は以下のようになります。
1
2
3
|
10/4 = 2余り2
3/2 = 1余り1
6/3 = 2余り0
|
商と余りが同時に求められていることが分かります。
マイナス値に対する余り
C#での、負数の余りを求める場合は注意が必要です。割られる数を負にすると、余りもマイナスになります。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
using System;
public class Hello{
public static void Main(){
int rem;
int div = Math.DivRem(-10, 4, out rem);
Console.WriteLine("-10/4 = {0}余り{1}", div, rem); // -10/4 = -2余り-2
div = Math.DivRem(3, -2, out rem);
Console.WriteLine("3/-2 = {0}余り{1}", div, rem); // 3/-2 = -1余り1
div = Math.DivRem(-6, -5, out rem);
Console.WriteLine("-6/-5 = {0}余り{1}", div, rem); // -6/-5 = 1余り-1
}
}
|
実行結果は以下のようになります。
1
2
3
|
-10/4 = -2余り-2
3/-2 = -1余り1
-6/-5 = 1余り-1
|
マイナス値に対する余りの結果は、言語によって挙動が異なりますので注意してください。
時間を求める
C#での、剰余演算子を利用した時間を求める方法を紹介します。ここでは、分から時分を求めます。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
using System;
public class Hello{
public static void Main(){
int rem;
int div = Math.DivRem(340, 60, out rem);
Console.WriteLine("340分 = {0}時間{1}分", div, rem); // 340分 = 5時間40分
div = Math.DivRem(100, 60, out rem);
Console.WriteLine("100分 = {0}時間{1}分", div, rem); // 100分 = 1時間40分
div = Math.DivRem(235, 60, out rem);
Console.WriteLine("235分 = {0}時間{1}分", div, rem); // 235分 = 3時間55分
}
}
|
実行結果は以下のようになります。
1
2
3
|
340分 = 5時間40分
100分 = 1時間40分
235分 = 3時間55分
|
FizzBuzz問題
C#での、剰余演算子を利用したFizzBuzz問題を解く方法を紹介します。FizzBuzz問題とは、3の倍数:fizz、5の倍数:buzz、15の倍数:fizzbuzzを出力します。実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
using System;
public class Hello{
public static void Main(){
// 3の倍数:fizz、5の倍数:buzz、15の倍数:fizzbuzzを出力
for(int i = 1; i <= 30; i++){
if(i % 15 == 0){
Console.WriteLine("{0}:FizzBuzz", i);
}else if(i % 5 == 0){
Console.WriteLine("{0}:Buzz", i);
}else if(i % 3 == 0){
Console.WriteLine("{0}:Fizz", i);
}
}
}
}
|
実行結果は以下のようになります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
3:Fizz
5:Buzz
6:Fizz
9:Fizz
10:Buzz
12:Fizz
15:FizzBuzz
18:Fizz
20:Buzz
21:Fizz
24:Fizz
25:Buzz
27:Fizz
30:FizzBuzz
|
- SE
- 剰余演算子(%)を使って余りを出す方法など、試してみます。
- PM
- 分から時分を求める方法やFizzBuzz問題の解き方もぜひ参考にしてみてください。
まとめ
いかがでしたでしょうか。C#での剰余演算子(%)の使い方について説明しました。剰余演算子の基本的な使い方、配列やList要素に対する使い方、商と余りを同時に求める方法、マイナス値に対する余りの算出方法について紹介しました。
また、分から時分を求める方法やFizzBuzz問題を解く方法についても紹介しました。
ぜひご自身でC#のソースコードを書いて、理解を深めてください。
Search キーワード検索
Popular 人気の記事
reccomended おすすめ記事
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)