A. From Hero to Zero( Educational Codeforces Round 66 (Rated for Div. 2))

emmmmmm不会模真的很烦~~~~

被搞自闭了......

 举个例子:59 3

按照题目描述:59 -> 58 -> 57 ->19 -> 18 -> 6 -> 3 ->1 ->0  一共8步

但是这样数字大一点就超时了!!!

所以:

if(n%k!=0){
                sum+=n%k;
                n-=n%k;
 }
else{
         n = n/k;   
         sum++;
 }

一开始59 —> 19 进行第一个 if 操作, sum = sum+n%k , n =n - n%k 即(sum = 2,n = 57)等效替代了之前的两个 “ -1” 操作......

剩下操作自己脑补...

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
long long n,k;
long long sum=0;
int main()
{
	int t;
	cin>>t;
	for(int i=0;i<t;i++){
		sum = 0,n = 0,k = 0;
		cin>>n>>k;
		while(1){
			if(n == 0){
				cout<<sum<<endl;
				break;
			}
			if(n%k!=0){
				sum+=n%k;
				n-=n%k;
			}
			else{
				n = n/k;   
				sum++;
			}
		}
	} 
	return 0;
}

 

posted @ 2019-06-22 21:48  金鳞踏雨  阅读(3)  评论(0编辑  收藏  举报  来源