码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • UPC2022暑期个人训练赛第23场(Credit Card Payment)


    #include
    using namespace std;
           
    #define fi first
    #define se second  
    #define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    typedef long long ull;
    typedef unsigned long long ll;
    const int N = 1e5+10;
    const int NN = 1e6+100;
    const int pp = 1e9+7;
    typedef pair<string,int>PII;
    const int inf = 2147483647;
    
    double eps = 1e-5; 
    int t,cnt;
    double a,c,b;
    
    /*首先读完题,我们可以发现一共有两个操作步骤
    1. 计算  根据本金计算利息
    2. 计算  新本金=本金+利息-还款
    
    已知利息是个整数无误差(要四舍五入)
    所以我们考虑精确第二个步骤
    
    我们可以发现每个小数都是小数点后两位,为了消除误差我们可以把小数运算化成整数运算
    即把本金和还款化为整数,这样所有的运算就都消除了误差
    */
    
    int main()
    {
        cin>>t;
         
        while(t--)
        {
            cin>>a>>b>>c;
            bool f=0;
            cnt=0;
            double a1=a/100.0;//计算出利率
            int b1=b*100+eps;//本金化为整数
            int c1=c*100+eps;//还款化为整数  注意eps尽量取1e-5  - 1e-7
            int e=b1*a1+0.5;//计算出利息
            
            
            if(e>c1) f=1;//如果第一次利息就大于还款,那么永远都还不完
            else//否则计算还款次数
            {
            	while(b1>0)
            	{
            		e=a1*b1+0.5;
    //        		cout<
            		b1=b1+e-c1;
            		cnt++;
            		if(cnt==1201)
            		{
            			f=1;
            			break;
    				}
    			}
    		}
              
            if(f) cout<<"impossible\n";
            else cout<<cnt<<"\n";
                      
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66

    至于为什么化成整数的时候要加 eps ,这与浮点数的储存有关

    详见博文:浮点数误差处理

  • 相关阅读:
    File的遍历文件
    监控指标--监控指标(3)
    esp32 arduino使用多个串口时如何查看serial1,serial2所对应的引脚定义
    基于java+SpringBoot+HTML+Mysql学生宿舍管理系统
    MindFusion.Java Swing Pack 2022图表控件
    【ES6.0】- 扩展运算符(...)
    6G时代新用户面设计和关键技术
    冷知识:SSD或U盘或FLASH闪存要温度高通电使用,温度低断电保存,数据才能更久不丢失!
    日常随笔——linux 更换cmake 版本
    云扩RPA携手中联教育引领财务机器人教学创新
  • 原文地址:https://blog.csdn.net/woshilichunyang/article/details/126130073
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号