临颍网站建设,四川教育公共信息服务平台,网站后台用什么程序做,wordpress 网址导航页杭电2156.分数矩阵
原题链接#xff1a;Problem - 2156
题目描述
Problem Description#xff1a;我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1#xff0c;对角线两边分数的分母逐个递增。请求出这个矩阵的总和。
Input#xf…杭电2156.分数矩阵
原题链接Problem - 2156
题目描述
Problem Description我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1对角线两边分数的分母逐个递增。请求出这个矩阵的总和。
Input每行给定整数N (N50000)表示矩阵为 N*N.当N为0时输入结束。
Output输出答案保留2位小数。 运行代码1
#include iostream
#includeiomanip
using namespace std;
int main()
{int n;while (cinnn!0) {double sum n * 1.0;int d 2;for (int i 2; i n; i) {double r 1.0 / d * (n - i 1) * 2;sum r;d;}cout fixed setprecision(2) sum endl;}
}运行结果 运行代码2
#include iostream
#includeiomanip
using namespace std;
int main() {double sum, term;int n;while (cin n n ! 0) {sum n; double two 2.0;for (int i 2; i n; i) {term two * (n - i 1) / i;sum term;}cout fixed setprecision(2) sum endl;}return 0;
}
代码2思路
这个分数矩阵的和可以看做计算一个数学序列的和具体而言对于输入的每个正整数n它计算了下面这个序列的和 代码思路分析:
读取一个整数n如果n为0则停止循环。初始化总和sum为n并设置分母d为2。每次迭代后d递增。打印累加和sum保留两位小数。可以预先计算2.0避免每次循环中重复的乘法操作。由于sum初始值已经是n且序列的第一项实际上就是n我们可以直接从i2开始循环这样可以减少一次无意义的计算和累加。
杭电2024.C语言合法标识符
原题链接Problem - 2024
题目描述
Problem Description输入一个字符串判断其是否是C的合法标识符。
Input输入数据包含多个测试实例数据的第一行是一个整数n,表示测试实例的个数然后是n行输入数据每行是一个长度不超过50的字符串。
Output对于每组输入数据输出一行。如果输入数据是C的合法标识符则输出yes否则输出“no”。 运行代码
#include iostream
#include string
#include cctype // 用于 isalpha, isdigit, isalnum
using namespace std;
bool FN(const string s) {// C语言标识符规则 // 1. 第一个字符必须是字母或下划线 // 2. 后续的字符可以是字母、数字或下划线 // 3. 不能是C的关键字 // 这里我们假设不检查关键字因为题目没有要求 // 检查空字符串 if (s.empty()) return false;// 检查第一个字符 if (!isalpha(s[0]) s[0] ! _) return false;// 检查后续字符 for (size_t i 1; i s.length(); i) {if (!isalnum(s[i]) s[i] ! _) {return false;}}return true;
}
int main() {int n;cin n; cin.ignore(); // 忽略可能存在的换行符 while (n--) {string s;getline(cin, s); // 读取每行的字符串 // 调用函数检查并输出结果 if (FN(s)) {cout yes endl;}else {cout no endl;}}return 0;
}
代码思路 导入必要的库iostream 用于输入输出string 用于处理字符串cctype 用于字符判断函数如 isalpha, isdigit, isalnum。 定义检查函数 FN(const string s)这个函数接收一个字符串作为输入根据C语言标识符的规则判断该字符串是否合法。规则包括首字符必须是字母或下划线之后的字符可以是字母、数字或下划线。此函数未直接检查关键字符合题目要求。 主函数 main()程序从用户那里获取测试案例的数目 n然后循环读取每行输入的字符串利用 FN 函数判断并输出结果。
C语言的标识符规则
标识符必须以字母(a-z, A-Z)或下划线(_)开头。标识符的其余部分可以由字母、数字(0-9)或下划线组成。标识符不能是C语言的关键字。