acm专练---第十一届山东省大学生程序设计竞赛Grade Point Average
2022/5/1 14:12:44
本文主要是介绍acm专练---第十一届山东省大学生程序设计竞赛Grade Point Average,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
去年山东省大学生程序设计竞赛的第G题,属于签到题;
签到题的特点当然是题目类型简单,题意也简单,当然,有质量的签到题也稍微有一点的难度;
显然,这道题考的思维;
题目大意是这样的:
摩卡进入大学后努力学习,学校颁发奖学金的规定是学年成绩的平均水平,然后是对于像48/5与29/3这样的小数计算出来的平均分是一样的,因为按照不同标准k输出的后几位小数是不同的
这里题目给出n---科目;
k----输出几位小数;
还有几个科目的成绩,让你计算保留k位小数的数字并且输出。
这个题直接输出是最不可取的,因为你会发现直接输出会输出一个%.kf,直接打印了;
我有两种思路,一是用数组:
当然,1e5太大了,挨个输出并且每次计算除0.1*10^k在存到数组里是很麻烦的一件事,况且很耗时。
这里用第二种方法---模拟除法运算是很简便的;
这道题其实和我男神翁老师出的那道pta的整除光棍是很像的,都是模拟手算除法,所以说:
这个题只要是每计算一位输出在把小数位乘10在相除取余在进入下一次运算就ok了;
当然,签到题出题方应该不会出的太难吧,也希望今年的题不要出的太难吧;
Talk is cheap. Show me the code.
1 #include<bits/stdc++.h>//模拟除法运算 2 using namespace std; 3 const int num=1e5+10; 4 const int INF=0x3f3f3f3f; 5 int n,k; 6 int a[num]; 7 double average; 8 int sum; 9 int main() 10 { 11 std::ios::sync_with_stdio(false); 12 cin>>n>>k; 13 for(int i=1;i<=n;i++) 14 { 15 cin>>a[i]; 16 sum+=a[i]; 17 } 18 printf("%d.",sum/n); 19 int temp=sum%n; 20 for(int i=1;i<=k;i++) 21 { 22 int b=temp*10; 23 int c=b/n; 24 printf("%d",c); 25 temp=b%n; 26 } 27 return 0; 28 }
这篇关于acm专练---第十一届山东省大学生程序设计竞赛Grade Point Average的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享