第二週程式設計練習

三井_pan發表於2016-03-11

1、進位制轉換。已知一個只包含 0 和 1 的二進位制數,長度不大於 10 ,將其轉換為十進位制並輸出。
2、只包含因子2,3,5的正整數被稱作醜數,比如4,10,12都是醜數,而7,23,111則不是醜數,另外1也不是醜數。請編寫一個函式,輸入一個整數n,能夠判斷該整數是否為醜數,如果是,則輸出True,否則輸出False。
3、歌唱大賽選手成績計算方法如下:去掉一個最高分,去掉一個最低分,將剩下分數的平均值作為選手的最後成績。這裡假設共有10位評委,都是按照百分制打分。
程式執行結果如下:
88 90 97 89 85 95 77 86 92 83
88.5
如果評委給出的成績不在0~100分之間,將給出錯誤提示。
4、實現一個演算法,確定一個字串的所有字元是否全部不同?

1、C++類庫提供了二進位制資料類,並且可以用其方法轉換成十進位制。其中#include 是C++中的一個標準庫,bitset<16>是該庫下的一個資料型別,bitset<16> bint表示宣告一個bitset<16> 型別(二進位制資料型別)的變數bint;bint.to_ulong()是系統庫的一個函式,主要返回一個十進位制下的無符號長整形數。(Returns an unsigned long with the integer value that has the same bits set as the bitset.)還有一種簡單的方法。

1、`
#include <iostream>
using namespace std;
#include <bitset>
int main()
{
    bitset<16> bint;  // 16 bit 二進位制資料,還有 bitset<32>
    cin >> bint;
    cout << bint.to_ulong() << endl;
    return 0;
}`
1-2#include<iostream>
using namespace std;
void main()
{
    int n, d, i=0, sum = 0;
    cout << "輸入一個二進位制的數" << endl;
    cin >> n;
        do{
        d = n % 10;
        sum += d*(pow(2,i));
        i++;
        n = n / 10;
        } while (n != 0);
        cout <<"轉換成10進位制以後的數為" <<sum<<endl;
    system("pause");
    // return 0;
}

2、`

#include<iostream>
using namespace std;
bool ugly(int number);
void main()
{
    int n;
    cout << "Inter a interger between 1 to 1000000" << endl;
    cin >> n;
    if (n == 1)
        cout << "False" << endl;
    else
        if (ugly(n) == 1)
            cout << "Ture" << endl;
        else
            cout << "False" << endl;
    system("pause");
    // return 0;
}
bool ugly(int number)
{
    while (number % 2 == 0)
        number /= 2;
    while (number % 3 == 0)
        number /= 3;
    while (number % 3 == 0)
        number /= 3;
    return(number == 1) ? true : false;
}

3、
#include<iostream>
using namespace std;
void main()
{
int max = 0, min = 100, sum = 0 ;
double ave;
int i = 0;
cout << "Please input ten group scores " << endl;
while (i < 10)
{
int score;
cin >> score;
if (score>100 || score < 0)
cout << "The input is error,please resume load" << endl;
else
{
while (score > max)
max = score;
while (score < min)
min = score;
sum += score;
i++;
}
}
ave = (sum - max - min) / 8.0;
cout << "The average score of player is " << ave << endl;
system("pause");
}

4、

相關文章