C++第12週報告1

1258 ワード


実験目的:循環制御文を用いて実際の問題を解決することを学び、効率を重視する観念実験内容を強化する:循環制御文でプログラムを編纂し、表現式の計算を完成する
*プログラムヘッダコメント開始(ブログで問題が発生しないように、コメントを示すスラッシュが削除されます)*プログラムの著作権とバージョン宣言部分*Copyright(c)2011、煙台大学コンピュータ学部学生*All rights reserved.*文件名称:1000内の完数*作者を求めます:劉江波*は期日を完成します:2011年11月09日*版の本号:v 11.09
*タスクと解法の記述部分*入力記述:問題なし記述:1つの数がその因子の和にちょうど等しい場合、この数を「完数」と呼ぶ.例えば6=1+2+3、さらに8の因子和が7(すなわち1+2+4)であるように、8は完数ではない.プログラミングは1000以内の全ての完数を探し出す.*プログラム出力:1000以内の全ての完数*問題解析:まず2から1000までサイクル制御変数iの外層サイクルを構築する.サイクル毎に、埋め込まれたサイクルを利用してiの因子を1つずつ求め、加算する(効率を向上させるためには、係数の対称性、すなわちjがsqrt(i)未満の因子であれば、必ずi/jも因子である)が考慮され、累積和がiと等しいと、iは完全数であり、出力される.そしてループを続け、i+1......*アルゴリズム設計:......を考察する.
ソース:
#include <iostream>  
using namespace std;
int main( )
{
 
   int m,s,i;

   for(i=2;i<=1000;i++)
    {
   s=0;

   for(m=1;m<i;m++)

      if((i%m)==0)
   s=s+m;
     if(s==i)
    {
     cout<<i<<"is a   "<<endl;

     cout<<"its factors are:";

     for(m=1;m<i;m++)

     if(i%m==0)

     cout<<m<<endl;
    }

    }
   return 0;
}


 
実行結果:(マップ)
 
経験の蓄積:1.問題を作るときはまずどうすればいいかを考えて、明確な考えがあります.2.紙に演算過程を書き出し、c言語に置き換えて効率を高める.3.良いプログラミングスタイルを訓練する.
上机感言:
着実に仕事をすれば,きっと成功するに違いない.