華中科技大學MOOC題目,
今天我有朋友讓我做一下他們華中科技大學的MOOC的題目,我就勉為其難的幫他做了一下,
在開頭先宣告一下,題目的答案不唯一,并且我的也不是在計算機效率上的最優答案,
首先我們來看一看他們的題目是什么?
題目一
對于一個正整數n,我們將它的各個位相加,得到一個新的數字,如果這個數是一位數,我們稱之為n的數根,
否則重復處理,直到它成為一個一位數,這個一位數就是n的數根,
一位數的數根為0
例如:24,2+4=6,6是24的數根
398,3+9+8=20,2+0=2,2是398的數根
#include<iostream>
#include<windows.h>
int main()
{
int num; //定義用戶將要輸入的數,
do
{
std::cout << "請輸入您需要求的數: ";
std::cin >> num; //接受用戶輸入,
}while( num < 0 ); //過濾掉用戶的不正確輸入,
if( num < 10 ) //確定用戶輸入為個位數的特殊情況,
{
std::cout << "數根是:0" << std::endl;
system("pause"); //使程式暫停,有利于觀察,
return 0; //退出程式,
}
int sum = 0;
LOOP1:
while( num > 0 )
{
sum = sum + num % 10; //提取出num的個位將其加到sum中,
num = num / 10; //將num的個位去掉變成一個新的數,
}
if( sum > 9 ) //判斷經過上面的操作后,得到的sum是否為個位數,若不是個位數將繼續執行上面的操作,
{
num = sum;
sum = 0;
goto LOOP1; //跳字上方loop1處,
}
std::cout << "他的數根是:" << sum << std::endl;
system("pause");
return 0;
}
題目二
計算sum = 2/1 + 3/2+…+(n+1)/n
//計算sum = 2/1 + 3/2+…+(n+1)/n
#include<iostream>
int main()
{
int n; //定義用戶即將輸入的數,
do
{
std::cout << "n = ";
std::cin >> n; //接受用戶輸入,
}while( n <= 0 );
double sum = 0; //定義最終答案變數
double i; //定義一個雙精度型的i變數,用于后面的計算,(若將double改為int的話,會發生不堪設想的后果,)
for( i = 1 ; i <= n ; i++ )
{
sum = sum + ( i + 1 ) / i; //加
}
std::cout << "total=" << sum << std::endl; //輸出結果
return 0;
}
這道題個人的感覺是太簡單了,畢竟作者本人以前做過這種類似的題,
題目三
題目內容:編程計算s=a+aa+aaa+…+aaa…a(n個a),a的取值為0~9,n的取值為0~5,a和n由鍵盤輸入
例如:a=1,n=3,則s=1+11+111=123
/*
題目內容:編程計算s=a+aa+aaa+…+aaa…a(n個a),a的取值為0~9,n的取值為0~5,a和n由鍵盤輸入
例如:a=1,n=3,則s=1+11+111=123
*/
#include<iostream>
#include<math.h>
int main()
{
int n , a; //定義 n 和 a
do
{
std::cout << "n = " ;
std::cin >> n; //接收用戶輸入,
}while( n < 0 || n > 5 ); //該回圈用于避免使用者的非法輸入,
do
{
std::cout << "a = " ;
std::cin >> a; //接收用戶輸入,
}while( a <= 0 || a > 9 ); //該回圈用于避免使用者的非法輸入,
int sum = 0 , i , j , temp ; //Temp表示一個數,例如111、77、55555,
for( i = 1 ; i <= n ; i++ )
{
j = i;
for( temp = 0 ; j ; j-- )
{
temp = temp + a * pow( 10 , j - 1 ); //計算temp的值,
}
sum = sum + temp; //將每次計算出的temp的值加入到sum變數中,
}
std::cout << "total = " << sum << std::endl; //輸出結果,
return 0;
}
這道題略為花費了本人一定的腦空間量,不過也都還好啦,> ^ _ ^ <
Last but not least,
1.編程的實力是通過不斷的實踐,不斷的積累經驗,從而達到的效果,
2.希望各位老爺子們高抬貴手,給寶寶點個贊,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/246842.html
標籤:其他
