• 締切済み

プログラミング js html

ダイアログを利用して1つの整数値を取得する ↓ 入力された1〜整数値までの間の3の倍数だけを合計する

  • Java
  • 回答数5
  • ありがとう数0

みんなの回答

回答No.5

だいぶたちましたが、検証はできましたでしょうか?

回答No.4

最終、、回答。。 3未満の数も0を加算するようにして対応した、バージョンと 教科書式と、数列式を追加。 <script> /* おまけ関数 */ function rand(min, max) {return parseInt(Math.random() * (max - min) + min);} for (let loop=0;loop<10;loop++) { /* s=開始位置、e=終了位置 */ let s=rand(1,50); let e=s+rand(1,100); /* 教科書式 */ let ans=0; for (let i=s;i<=e;i++) { if ((i%3)==0) ans+=i; } /* 等差式 */ let si=parseInt((s+2)/3); let ei=parseInt(e/3); let ans2=((3*(ei+si))*(ei-si+1))/2; console.log("入力値=" + s + "/" + e +" 答え=" + ans + " / 等差=" + ans2); } </script> ↑を実行すると、画像のような回答を返すので、 ま~あってるでしょ!ってことで。 結構楽しめました!この課題! また、面白い質問待ってます!

回答No.3

とりあえず、完成 3以下は動作しないので、最初に3以上をチェックしてから使用する。 どちらにしても、3未満に、3の倍数はないので、 0になる関係で、答えがなくなる。 <script> /* e=入力値が入るものとする */ let e=14; /* 以下が計算 */ let ei=parseInt(e/3); let ans=((3+(3*ei))*ei)/2; console.log("入力値=" + e); console.log("答え=" + ans); </script> 例えば、1~14をチェックすると 3,6,9,12が対象となればOK 結果、合計30を出力できれば正解! なので、まず、14を3で割り整数部を得る 14/3=4.666666666666667。整数部は「4」となる。 (3+(3*4))*4を求める。 let ans=((3*(ei+1))*ei)/2; でも、数式は同じ 結果 =(3+(3*4))*4 =(3+12)*4 =15*4 =60 が求まるので、最後に2で割り30が答え! これで、1~14までの3の倍数の合計が求まる!。 ポイント let ei=parseInt(e/3); これは、整数部を取り出しているので、割った結果 3=1 4=1 5=1 6=2 3で割る事で桁上がりが起こることを利用しています。 ってことで、どうですか~

回答No.2

いや・・・問題文がおかしい! >入力された1〜 そもそも、整数で3未満は3の倍数はあり得ない。 となると、 for (i=3;i<入力値;i+=3) だけでいいんじゃ・・・

回答No.1

>入力された1〜整数値までの間の3の倍数だけを合計する 逆に考えればOK 3の倍数は、3で割り算してあまりが出ない数です。 余りは % で簡単に求められるので、 これが0(つまりあまりなし)になった数を、 合計すればOKです。

関連するQ&A

  • プログラミングなんですが。。

    次のようなプログラムはどのようにして作成したらいいのでしょうか。 [1]2つの整数aとbを作成します [2]2数が一致すれば”a=b=(入力した数値)” と表示させます [3]2数がともに10より小さければ”2数とも10未満です”と表示させます [4]2数のうちどちらかが5で割り切れれば”どちらかが5で割り切れます”と表示させます [5]bが0でまければa/bを表示させます   また、1文字を入力してその文字が小文字なら大文字に、大文字なら小文字に変換するプログラムを作成するためにはどのようにすればいいのでしょうか。 そして最後に0以上の整数をキーボードから入力し、その数が以下のどれにあたるかを判定し適当なメッセージをさせたいのですが [1]0ではない [2]4の倍数で、かつ7の倍数である [3]4の倍数であるか、もしくは7の倍数である [4]上の[2][3]のいずれにもあてはまらない   長くなってすみません。if文の使い方もよくわからないので教えていただけると嬉しいのですが (^^;)

  • 教えてください!プログラミング!

    はじめまして 「入力した値が3の倍数のときに、10個先の3の倍数までをすべて足していく」というプログラムを作っているのですがどうしてもエラーになってしまいます・・・ 教えてください! 条件は ユーザーが値を入力すること 計算をする 分岐を使うこと 繰り返しを使うこと 結果を表示する 私がやってエラーになっているプログラムです /* kadai.c */ #include <stdio.h> main() { int seisu, gokei,handan; gokei=0; printf("整数を入力して下さい\n"); scanf("&d", &seisu); handan=seisu%3; if(handan=0) for(seisu=1; seisu<=10;) { seisu=seisu+3; gokei=seisu+gokei; printf("合計=%d\n",gokei); } else printf("できません\n"); return 0; }

  • 特定の倍数の合計は?

    エクセルでB2~G13に整数が入力されていて そのうち3の倍数のみの合計を求めたいときは どのような関数を使えばいいのか教えてください。

  • c言語プログラミングの問題です。

    符号なし整数xを順に受け取り,xが5の倍数であればその数字を表示してプログラムを終了し,xが5の倍数でなければ次の入力に移るプログラムをdo-while文を用いて記述せよ. ただし,入力に5の倍数が含まれているものとする. どう記述すればいいですか。 冒頭の「順に受け取る」の意味が分かなくて手が付けられません。

  • プログラミング for文

    for文を使い以下のように出力させたいのですが、 うまくいかないので教えていただけないでしょうか? 入力する整数の数:n 1個目の整数は:(1) 2個目の整数は:(2)  :  : n個目の整数は:m すべての合計は:  平均は:  n、(1)、(2)、m、はキーボード入力です。 わかる方よろしくお願いします。

  • C言語のプログラミング (基礎)教えてください。

    以下のような問題があります。 プログラムを作ってみたのですが、 コンパイルすると無限ループになったり、 正しく結果が出ません。 どのように直せば良いか教えていただけると助かります。 よろしくお願いします。 整数が入力される度に今までの合計を出力するプログラムを作成しなさい。なお、0 が入力されたら終了するものとする。 ただし、繰り返しの命令は while 文を使用し、条件は常に真 ( 1 ) とし、break 文を使うこと。 ▼実行例 整数:1     合計:1 整数:2     合計:3 整数:3     合計:6 整数:0 ******************************** #include<stdio.h> int main(void) { int n,sum; sum=0; while(1){ printf("¥n整数:"); scanf ("%d", &n); sum=sum+n; printf("¥n    合計:%d", sum); scanf ("%d", &sum);          if(n==0){ break;   } } }

  • C言語プログラミングの問題がわかりません・・・。

    ただいまC言語を勉強している者です。 【入力するデータ数と各データ(整数)を入力していき,0 以下の整数の数,正の整数の数,0 以下の整数の合計,正の整数の合計を求めるプログラムを作成せよ。】 という問題があり、とりあえず #include "stdio.h" void main() { int i,j,k,l=0,m=0,goukeisei=0,goukeifu=0; printf("入力するデータ数:"); scanf("%d",&i); for(j=1;j<=i;j++); { printf("データを入力してください(整数):"); scanf("%d",&k); if(k>0){ l++; goukeisei+=k; }else{ m++; goukeifu+=k; } } printf("正の整数の数%d\n",l); printf("0以下の整数の数%d\n",m); printf("正の整数の合計%d\n",goukeisei); printf("0以下の整数の合計%d\n",goukeifu); } と作ってみたのですが、入力するデータ数の繰り返しがされません(1回入力して終わりになってしまいます);; for文の使い方が間違っているのでしょうか・・・ 詳しい方教えてくださいm( _ _ )m 尚環境はXPでVC++2008を使っています。よろしくお願いします。

  • c言語でのプログラミング

    キーボードから複数個の正整数値を読み込み,合計値と平均値(小数第1位まで)を表示するプログラムを作りなさい。 ただし入力数値の個数はプログラミング時には決定していない。 負整数が入力されたら入力値はもうなくなったと判断することとし,負の数は計算には使用しないこととする。またデータは少なくとも1つは入力されるものとする。(p02ex15.c) 検証は1から10までの数字すべてを与え,合計値55,平均値5.5が表示されることを確かめること。 (「1,2,3,4,5,6,7,8,9,10,-1」(-1はデータ終わりの合図)を入力して確かめなさい。) また,1から5までの数字すべてを与え,合計値15,平均値3が表示されることを確かめること。 (「1,2,3,4,5,-1」(-1はデータ終わりの合図)を入力して確かめなさい。) このプログラムのソースコードを教えて下さい。 解説もよろしくお願いします。

  • 集合の問題なのですが考え方を教えてください

    問題は下の通りです ーーーーーーーーーここからーーーーーーーーー 1から200までの整数のうち、次のような数はいくつあるか (1)4または6の倍数 ーーーーーーーーーここまでーーーーーーーーー 答えは67個なのですが 考え方として 4の倍数と6の倍数を求めて、その合計から重複したものを引けばよいのは分かるのですが、重複した数を求める方法を教えてください 4の倍数(50個)+6の倍数(33個)ー?=67個なのですが、 ?の出し方(考え方)を教えてくださいお願いします。 よろしくお願いします

  • 確率

    1,2,3,4,5の数字が1つずつ書かれたカードがそれぞれ1枚ずつ、合計5枚ある。このカードから3枚を選んで3桁の正の整数を作るとき、6の倍数は何通り出来るか? 答え8通り この時6の倍数ってどうやって見つけるのかが分かりません。