首页 > 其他 > 详细

2014年百度之星程序设计大赛 资格赛第一题 (longlong)

时间:2014-05-17 20:49:44      阅读:370      评论:0      收藏:0      [点我收藏+]

解题思路:

只要看(A-V)*K 这个公式的更新值是否大于等于A ,大于的话继续循环,否则报错

注意一点,数据会爆int

WA代码:

bubuko.com,布布扣
#include<stdio.h>
int main(){
    long long n ,m, v, k;
    int t;
    scanf("%d",&t);
    while(t--){
        scanf("%lld%lld%lld%lld",&n,&m,&v,&k);
        int cnt = 0;
        while(m < n){
            if( (m - v) * k <= m ){
                cnt = -1;
                break;
            }
            m = (m - v) * k ;
            ++cnt;
        }
        printf("%d\n",cnt);
    }
    return 0;
}
bubuko.com,布布扣

AC代码:

bubuko.com,布布扣
#include <iostream>
using namespace std;
int main(){
    long long n ,m, v, k;
    int t;
    cin >> t;
    while(t--){
        cin >> n >> m >> v >> k;
        int cnt = 0;
        while(m < n){
            if( (m - v) * k <= m ){
                cnt = -1;
                break;
            }
            m = (m - v) * k ;
            ++cnt;
        }
        cout << cnt << endl;
    }
    return 0;
}
bubuko.com,布布扣

 

2014年百度之星程序设计大赛 资格赛第一题 (longlong),布布扣,bubuko.com

2014年百度之星程序设计大赛 资格赛第一题 (longlong)

原文:http://www.cnblogs.com/wushuaiyi/p/3732952.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!