1. 程式人生 > 其它 >C++程式設計實驗一 2017/11/20

C++程式設計實驗一 2017/11/20

技術標籤:C++2017.9c++

1.1題目描述

鍵盤輸入正整數 n,求出n與其反序數x之和並輸出。例如,輸入2038n+x = 2038 +8302 =10340,輸出應為10340。要求:編寫函式實現資料轉換成反序數值。

1.2原始碼

#include<iostream>
using namespace std;
int main()
{
    int n, x, sum, m;
    x = 0;
    cin >> n;
    m = n;
    while (m != 0)
    {
        x = x * 10 + m % 10;
        m = m / 10;
    }
    sum = x + n;
    cout << sum;
    return 0;
}

1.3執行截圖

2.1題目描述

鍵盤輸入正整數 n,求出n與其反序數x之和並輸出。例如,輸入2038n+x = 2038 +8302 =10340,輸出應為10340。要求:編寫函式實現資料轉換成反序數值

2.2原始碼:

#include<iostream>
using namespace std;
void find(int i,int n);
int main()
{
    int i,n;
    cin>>i>>n;
    find(i,n);
    return 0;
}
void find(int i,int n)
{
    int x,y,a=0;
    for(x=i;a<n;x++)
    {
        for(y=2;y<=x;y++)
            if(x%y==0)
                break;
            if(y>=x)
            {
                cout<<x<<" ";
                a++;
            }
    }
}

2.3執行截圖:

3.1題目描述

輸入正整數startend,找出從startend這一區間段內哪一個數n的因子和最大,並將該n及其因子和maxSum作為結果輸出。例如,當start=10end=15時,所求的n應該為12,而maxSum應該為16

3.2原始碼

#include<iostream>
using namespace std;
int main()
{
    int start, end, maxsum;
    maxsum = 0;
    cin >> start >> end;
    int i, j, a, b;
    for (i = start; i < end; i++)
    {
        a = 0;
        for (j = 2; j < i; j++)
        {
            if (i%j == 0)
                a = a + j;
        }
        if (a > maxsum)
        {
            maxsum = a + 1;
            b = i;
        }
    }
    cout << b << " " << maxsum;
    return 0;
}

3.3執行截圖

4.1題目描述

編寫具有如下原型的函式symmbool symm(long n); 用來判斷正整數n是否為迴文數(正讀與反讀為大小相同的數),若是返回true,否則返false。並編寫主函式,通過呼叫symm,求出n以內所有滿足下述特徵的mm7*m以及3*m*m都是迴文數,如11188(因為m=17*m=73*m*m=3m=117*m=773*m*m=363m=887*m=6163*m*m=23232

4.2原始碼

#include<iostream>
using namespace std;
bool symm (long n);
int main ()
{
    int m,n;
    cin>>n;
    for (m=1;m<n;m++)
    {
        if (symm(m)&&symm(m*7)&&symm(m*m*3))
        {
            cout<<m<<" ";
        }
    }
    return 0;
}
bool symm (long n)
{
    int a,b,c;
    a=n;
    b=0;
    while (a!=0)
    {
        c=a%10;
        b=b*10+c;
        a=a/10;
    }
    if (b==n)
       return true;
    else 
       return false;
}

4.3執行結果

5.1題目描述

編寫具有如下原型的函式:bool f(long x);其功能為:若整數 x 僅由偶數字(02468)組成時(如 x=26480),函式返回 true,否則返回 false(如當 x=22034 時)。並編制主函式對它進行呼叫。

5.2原始碼

#include<iostream>
using namespace std;
int main()
{
    bool f(long x);
    long x;
    cin>>x;
    f(x);
    return 0;
}
bool f(long x)
{
    int m,n;
    m=x;
    do
    {
        n=m%2;
        if(n==1)
            break;
        else
            m=m/10;
    }while(m>0);
    if(m>0)
        cout<<"false";
    else
        cout<<"true";
        return 0;
}

5.3執行截圖