一、等差數(shù)列求和
描述
編寫一個函數(shù)sum(…),計算等差數(shù)列中前n項數(shù)據(jù)的和。已知等差數(shù)列的起始項為2。例如:等差數(shù)列2,5,8,11…,需要利用sum函數(shù)求出前3項的和為15。
【題目要求】
① 等差數(shù)列中數(shù)字之間的差值不固定,需要自行輸入。
② 輸入要求的數(shù)列項數(shù)n。
③ 輸出前n項數(shù)據(jù)的和。
輸入描述
兩個正整數(shù);
第一個正整數(shù)為數(shù)列中數(shù)字之間的差值(1≤差值≤50);
第二個正整數(shù)為求和數(shù)列的項數(shù)n(1≤n≤100);
兩項內(nèi)容中間用空格分隔。
輸出描述
一個正整數(shù),代表前n項數(shù)據(jù)的和。
用例輸入 1?文章來源:http://www.zghlxwxcb.cn/news/detail-712524.html
4 5
用例輸出 1?
50
#include <iostream>
using namespace std;
//arithmetic progression 等差數(shù)列
// 創(chuàng)建一個等差數(shù)列求和公式 an = a1 + (n-1)d
// 等差數(shù)列前 n 項和 Sn=n(a1+an)/2 或Sn=na1+n(n-1)d/2
int arithmeticProgressionSum(int d, int n) {
int a1 = 2, sum;
sum = n * a1 + n * (n - 1) * d / 2;
return sum;
}
int main() {
// 差值difference value,項數(shù) number of terms
int differenceValue = 1, numberOfTerms = 1;
cin >> differenceValue >> numberOfTerms;
int sum;
sum = arithmeticProgressionSum(differenceValue, numberOfTerms);
cout << sum << endl;
return 0;
}
二、判斷數(shù)字位數(shù)
描述
編寫一個函數(shù)get_length(…),計算輸入的正整數(shù)有多少位。輸入的第一個數(shù)字不為 0。
輸入描述
一個正整數(shù)(不超過10位)。
輸出描述
一個正整數(shù),代表數(shù)字的位數(shù)。
用例輸入 1?
123456
用例輸出 1?
6
/*
* 編寫一個函數(shù)get_length(…),計算輸入的正整數(shù)有多少位。
* 讓這個數(shù)一直 % 10 知道結(jié)果 == 0 時
* 計算 % 的次數(shù)
* 第一個數(shù)字不為 0
*/
#include <iostream>
using namespace std;
int get_length(int number) {
int length = 0;
// 不能用 模 % ;例:5%10 = 5;5/10 = 0
for (;number > 0;length++) {
number /= 10;
}
return length;
}
int main() {
int number, frequency;
cin >> number;
frequency = get_length(number);
cout << frequency;
return 0;
}
三、有規(guī)律的圖形
描述
編寫一個函數(shù)graph(…),輸出一個a行b列(1≤a,b≤10000)由任意符號組成的矩形。
輸入描述
一行,兩個整數(shù)a, b(分別代表行與列,1≤a,b≤10000)一個字符,中間用空格分隔。
輸出描述
a行b列由指定字符組成的矩形。
用例輸入 1?
3 4 @
用例輸出 1?
@@@@ @@@@ @@@@
#include <iostream>
using namespace std;
//1、定義輸出有規(guī)律的圖形的函數(shù)
void graph(int row,int column, char c) {
for (int i = 1;i <= row;i++) {
for (int j = 1;j <= column;j++) {
cout << c;
}
cout << endl;
}
}
int main() {
//2、接收輸入行數(shù)與列數(shù)以及符號字符
int row, column;
char c;
cin >> row >> column >> c;
//3、調(diào)用函數(shù)graph
graph(row, column, c);
return 0;
}
四、簡易計算器
描述
編寫一個函數(shù)calcu(…),模擬可以進(jìn)行四則運算的計算器。輸入兩個數(shù),和四則運算符號,即可返回計算的結(jié)果。
輸入描述
一行,兩個正整數(shù)(1≤數(shù)字≤10000),一個字符(‘+’、‘-’、‘*’、‘/’),內(nèi)容之間用空格分隔。
輸出描述
一個整數(shù),代表計算結(jié)果。
用例輸入 1?
10 - 8
用例輸出 1?
2
用例輸入 2?
10 / 3
用例輸出 2?
3
#include <iostream>
using namespace std;
// 正整數(shù)四則運算函數(shù) + - * /
// 算數(shù)運算符 arithmetic operator
void calcu(int number1, char arithmeticOperator, int number2) {
switch (arithmeticOperator) {
case '+':
cout << number1 + number2;
break;
case '-':
cout << number1 - number2;
break;
case '*':
cout << number1 * number2;
break;
case '/':
cout << number1 / number2;
break;
default:
cout << "請輸入正確的運算符" << endl;
break;
}
}
int main() {
int number1, number2;
char arithmeticOperator;
cin >> number1 >> arithmeticOperator >> number2;
calcu(number1, arithmeticOperator, number2);
return 0;
}
五、素數(shù)對
描述
兩個相差為?2?的素數(shù)成為素數(shù)對,5?和?7,17?和?19,求出不大于?n?的素數(shù)對,沒有輸出?“empty”
。n≤1000。
輸入描述
輸入一個?n。
輸出描述
n?以內(nèi)的素數(shù)對。
用例輸入 1?
11
用例輸出 1?文章來源地址http://www.zghlxwxcb.cn/news/detail-712524.html
3 5 5 7
/*
* 質(zhì)數(shù)(素數(shù))是指在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)的自然數(shù)。
* 素數(shù) prime number
*/
#include <bits/stdc++.h>
using namespace std;
int primeNumber(int x) {
// sqrt()平方根函數(shù)
int t = sqrt(x);
// 質(zhì)數(shù)(素數(shù))是指在大于1的自然數(shù)中
for (int i = 2;i <=t;i++) {
// 如果 x 能被其他數(shù)整除,那就不是素數(shù),然后返回 0;否則返回 1
if (x % i == 0) {
return 0;
}
}
return 1;
}
int main() {
// flag是用來判斷有沒有素數(shù)對
int n,flag=0;
cin >> n;
// 從2開始,因為1既不是素數(shù)也不是合數(shù)
for (int i = 2;i <= n-2;i++) {
if ((primeNumber(i) == 1) && (primeNumber(i + 2) == 1)) {
printf("%d %d\n",i,i+2);
flag = 1;
}
}
if (flag == 0) {
cout << "empty";
}
return 0;
}
到了這里,關(guān)于C++ 基礎(chǔ)(十二)函數(shù)-題目練習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!