hdu 3123 GCC

/* 一个小技巧是当n>=m时n!%m==0 所以当n>=m时直接令n==m即可 这样就不用用处理大数乘法的方式处理n!了 */ #define LOCAL #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<cstdlib> #include<iomanip> #include<string> #include<algorithm> #include<ctime> #include<stack> #include<queue> #include<vector> #define N 10005 using namespace std; int main() { #ifdef LOCAL freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); #endif long long t=1,ans,i,ncase,m,n,nlen,mlen;string str; cin>>ncase; while(ncase--) { //数据处理 cin>>str>>m; nlen=str.size(); t=m;mlen=0; while(t){t=t/10;mlen++;} t=1;n=0; for(i=nlen-1;(i>=0&&i>=nlen-8);i--) { n+=(str[i]-'0')*t; t*=10; } if(nlen>mlen||n>m) {n=m;n--;} //计算 ans=1;t=1; for(i=1;i<=n;i++) { t=(t*i)%m;//防止数据溢出 ans=(ans+t)%m; } ans%=m;//防止出现m==1出现时n%m==1的情况 cout<<ans<<endl; } return 0; }
### 杭州电子科技大学操作系统实验环境配置 #### 一、实验目标 为了顺利完成杭州电子科技大学的操作系统课程实验,需要搭建特定的开发和测试环境。这不仅有助于理解理论知识的应用场景,还能够提高实际动手能力。 #### 二、所需工具与平台 - **操作系统**: 推荐使用 Ubuntu 或其他 Linux 发行版作为主机操作系统;可以考虑在虚拟机内运行目标操作系统以便于管理和隔离[^3]。 - **编译器及构建工具**: - GCC (GNU Compiler Collection): 支持 C/C++ 编程语言的编译工作。 - Make 工具链: 自动化项目构建流程。 - **调试辅助软件** - GDB (GNU Debugger): 提供强大的程序调试功能。 - Valgrind: 内存泄漏检测和其他性能分析工具。 #### 三、具体步骤概述 1. 安装必要的依赖包以确保后续组件能正常安装并运作。 ```bash sudo apt update && sudo apt install build-essential gdb valgrind qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager -y ``` 2. 配置 QEMU/KVM 虚拟化环境用于模拟真实硬件条件下的操作系统行为研究。 3. 下载指定版本的目标操作系统镜像文件,并通过 Virt-Manager 创建新的虚拟机实例加载该镜像启动。 4. 进入虚拟环境中完成进一步定制化设置,比如网络参数调整、磁盘空间分配等操作。 5. 开始编写简单的驱动模块或者应用程序代码,在宿主机上利用交叉编译的方式生成适用于目标系统的可执行文件。 6. 将编译好的成果传输到虚拟机内部进行部署测试验证其正确性和稳定性。 7. 使用上述提到的各种调试工具对可能出现的问题展开深入排查直至解决问题为止。 8. 记录整个过程中遇到的技术难点及其解决方案形成文档资料积累经验教训方便日后查阅参考。 ```python # Python 示例:自动化脚本帮助快速建立实验环境(仅作示意) import os def setup_environment(): commands = [ "sudo apt-get update", "sudo apt-get install -y git gcc make qemu-kvm" ] for cmd in commands: os.system(cmd) setup_environment() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值