南京理工大学 程序设计基础(Ⅰ) SPOC | 学校专有课程 编程作业 第4章作业2
第一题
某数列的第n项(100分)
题目内容:
某个数列的前5项为: 1/2,3/2,5/3,8/5,13/8,按此规律求出该数列的第n(n<90)项的分子和分母。
输入格式:
输入不大于90的整数n
输出格式:
输出第n项,格式为分子/分母
输入样例:
20
输出样例:
17711/10946
80分案例:
#include<iostream>
using namespace std;
int main() {
long num1 = 1, num2 = 2, num, n;//num1 代表分子,num2代表分母(n = 1除外),num作为num1与num2交换的中间数
cin >> n;
if (n < 90 && n > 0) {
if (n == 1) cout << num1 << "/" << num2;//这里易错
else if (n > 1) {
for (int i = 1; i < n; i++) {
num = num2;
num2 += num1;
num1 = num;
}
cout << num2 << "/" << num1;
}
}
return 0;
}
第二题
阶乘之和(100分)
题目内容:
求值 1! + 2! + 3!+ …+ n!并输出
输入格式:
输入正整数n(n<=20)
输出格式:
输出1! + 2! + 3!+ …+ n!的结果
输入样例1:
3
输出样例1:
9
输入样例2:
10
输出样例2:
4037913
#include<iostream>
using namespace std;
int main () {
long n, num;
long result = 0;
cin >> n;
if (n <= 20) {
for (int i = 1; i <= n; i++) {
num = i;
for (int j = 1; j < i; j++) {
num *= j;
}
result += num;
}
cout << result;
}
return 0;
}
第三题
三角星星(100分)
题目内容:
从键盘输入正整数n,输出n行的等腰三角形
输入格式:
正整数n(n<=40)
输出格式:
顶格输出等腰三角形的n行*
输入样例:
5
输出样例:
*
***
*****
*******
*********
#include<iostream>
using namespace std;
int main () {
int n;
cin >> n;
if (n <= 40) {
for (int k = 0; k < n; k++) {
for (int i = 0; i < n - 1 - k; i++) {
cout << " ";
}
for (int j = 0; j < 1 + 2 * k; j++) {
cout << "*";
}
cout << endl;
}
}
return 0;
}
第四题
各位数字之和(100分)
题目内容:
求输入的正整数的各位数字之和。
输入格式:
输入正整数n(n<=4294967295)
输出格式:
输出n的各位数字之和
输入样例:
123
输出样例:
6
#include<iostream>
using namespace std;
int main () {
long n;
int sum = 0;
cin >> n;
if (n <= 4294967295) {
while (n > 0) {
sum += n % 10;
n /= 10;
}
cout << sum;
}
return 0;
}