實踐題1
【問題描述】編寫具有如下原型的函數:bool f(long x);其功能爲:若整數 x 僅由偶數字(0、2、4、6、8)組成時(如 x=26480),函數返回 true,否則返回 false(如當 x=22034 時)。並編制主函數對它進行調用。
【輸入形式】只能是一個整數數字,中間不能有空格等其他字符;
【輸出形式】只輸出true或者false,後面不要換行。
【樣例輸入】26480
【樣例輸出】true
【樣例說明】輸入輸出時不要帶有其他說明文字或符號
#include<iostream>
using namespace std;
bool f(long x)
{
int temp;
bool flag = true;
while(x/10!=0)
{
temp=x%10;
if(temp%2!=0) return !flag;
x/=10;
}
if(x%2!=0) return !flag;
return flag;
}
int main()
{
long a;
cin >> a;
if(f(a)) cout << "true";
else cout << "false";
return 0;
}
實踐題2
【問題描述】編寫具有如下原型的函數:void find(int i, int n); 實現從 i 開始找起,連續找出 n 個素數並顯示在屏幕上。如:實參爲10 和 8 後,輸出的 8 個素數應爲:11,13,17,19,23,29,31,37。
【輸入形式】輸入兩個整數,前一個是查找的起始數字,後一個是指定查找幾個素數;
【輸出形式】輸出指定數量的素數,每個素數後面加一個空格作爲分隔符,最後一個數字後面可以有一個空格,但不需要換行。
【樣例輸入】13 4
【樣例輸出】13 17 19 23
【樣例說明】輸出結果中除了題目中說明的空格,不要加其他文字和符號。
#include<iostream>
#include<cmath>
using namespace std;
int is_prime(int n)
{
int j = 0;
for (j = 2; j <=sqrt (n); j++)
{
if (n%j == 0)
{
return 0;
}
}
return 1;
}
void find(int i,int n)
{
while(n)
{
if(is_prime(i))
{
cout << i << " ";
n--;
i++;
}
else i++;
}
}
int main()
{
int a,b;
cin >> a >> b;
find(a,b);
return 0;
}
實踐題3
【問題描述】輸入正整數start和end,找出從start到end這一區間段內哪一個數n的因子和最大,並將該n及其因子和maxSum作爲結果輸出。例如,當start=10,end=15時,所求的n應該爲12,而maxSum應該爲16。
要求:設計函數計算n的因子和,其中因子和爲包括1但不包括n本身的所有因子之和。
【輸入形式】兩個整數,用來指定查找的起始數字和結束數字;
【輸出形式】兩個整數,中間用一個空格隔開,前一個是因子和最大的數字,後一個是因子和,最後一個數字後面不要有空格和換行。
【樣例輸入】10 15
【樣例輸出】12 16
【樣例說明】輸出不要有多餘的空格和換行。
#include<iostream>
using namespace std;
int yin_sum(int n)
{
int sum=0;
for(int i=1;i<n;i++)
if(n%i==0)
sum+=i;
return sum;
}
int main()
{
int start,end,maxsum=-1,temp,aim=0;
cin >> start >> end;
for(int i=start;i<=end;i++)
{
temp=yin_sum(i);
if(temp > maxsum)
{
maxsum=temp;
aim=i;
}
}
cout << aim << " " << maxsum;
return 0;
}
實踐題4
#include<iostream>
#include<cmath>
using namespace std;
bool is_hui(long n)
{
int copy=0;
int num=n;
while(num>0)
{
copy=copy*10+num%10;
num/=10;
}
return (n==copy?1:0);
}
int main()
{
int n;
cin >> n;
for(int i=1;i<=n;i++)
if(is_hui(i)&&is_hui(i*7)&&is_hui(i*i*3))cout << i << " ";
return 0;
}
實踐題5
【問題描述】鍵盤輸入正整數 n,求出n與其反序數x之和並輸出。例如,輸入2038,n+x = 2038 +8302 =10340,輸出應爲10340。要求:編寫函數實現數據轉換成反序數值。
【輸入形式】輸入一個整數;
【輸出形式】輸出一個整數;
【樣例輸入】2038
【樣例輸出】10340
【樣例說明】不要任何輸入輸出的文字提示。
#include<iostream>
#include<cmath>
using namespace std;
int fun(int n)
{
int ans=0;
while(n>0)
{
ans=ans*10+n%10;
n/=10;
}
return ans;
}
int main()
{
int n;
cin >> n;
cout << fun(n)+n;
return 0;
}