No.666 1000000007で割るだけ
はじめに
競技プログラミング、yukicoder
No.666 1000000007で割るだけ
言語はC#
何かあればTwitter→@pirorirori_n712まで
問題
入力:数値AとB(1<=A,B<=109)
出力:AとBをかけて1000000007で割った余り
解き方
AとBをかけて1000000007で割る
値が大きすぎてint型だと入らないのでlong型で計算する
解き方例
①AとBをかけて1000000007で割る
*String.Split()
→文字列を特定の区切り文字で分割する
**使い方
文字列を半角の空白で分けて、文字の配列に変えるとき
var str="abc abcd";
var strArray=String.Split(' ');
Console.WriteLine(strArray[0]);
Console.WriteLine(strArray[1]);
//出力
abc
abcd
*Int64.Parse()
→string型の文字列をlong型に変換する
**使い方
Int64.Parse(String);
コード例
using System; class No666{ static void Main(){ //入力を保存する var str=Console.ReadLine(); //空欄で文字列を分ける var num =str.Split(' '); //文字列になっている数字をlong型に変換して積を出す var l=long.Parse(num[0])*long.Parse(num[1]); //積を1000000007で割った余りを出す var answer=l%1000000007; //答えを出力 Console.WriteLine(answer); } }
入力された文字列を半角の空欄で分割して、
配列にするまでを一行で行う
using System; class No666{ static void Main(){ //入力された文字列を空欄で分割する var str=Console.ReadLine().Split(' '); //文字列になっている数字をlong型に変換して積を出す var l=long.Parse(str[0])*long.Parse(str[1]); //積を1000000007で割った余りを出す var answer=l%1000000007; //答えを出力 Console.WriteLine(answer); } }
文字列になっている数字をlongに変換して積を出し、
1000000007で割った余りを出すまでを一行で行う
using System; class No666{ static void Main(){ //入力された文字列を空欄で分割する var str=Console.ReadLine().Split(' '); //文字列になっている数字をlong型に変換して積を出す //積を1000000007で割った余りを出す var answer=(Int64.Parse(str[0])*Int64.Parse(str[1]))%1000000007; //答えを出力 Console.WriteLine(answer); } }
*リンクを使うとさらに短くできます
using System; using System.Linq; class No666{ static void Main(){ //全ての処理を一行で行う Console.WriteLine((Console.ReadLine().Split(' ').Select(x=>Int64.Parse(x)).Aggregate((x,y)=>x*y))%1000000007); } }