金币(UPC)

发布时间:2024年01月15日
题目描述

乔治在梦中来到了一个神奇部落,这个部落的神树具有奇特的功能:对于每一位新朋友,都会获赠金币,而且金币的数量会随时间的延续而增加:
第1周,每天1枚金币;
第2周,每天2枚金币;
第3周,每天3枚金币;……
请问:至少多少天,乔治的金币数量达到n枚?

输入

一行,只有一个正整数n。

输出

一行,一个整数,表示金币达到n枚所需的最少天数。

样例输入?Copy
30
样例输出?Copy
17
提示

第1周:每天1枚,共7枚;
第2周:每天2枚,共14枚;
第3周:每天3枚,3天即可:7+14+3*3=30。
共计:7+7+3=17天。
【数据规模】
对于30%的数据,n不超过2147483647;
对于100%的数据,n的位数不超过18。

代码实现:

#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
	ll n;
	ll day;
	cin>>n;
	ll sum=0;
	ll t;
	if(n<=7)
	{
		day=n;
	}
	else
	{
		ll i=1;
		while(sum<=n)
		{
			sum+=i*7;
			t=i;
			i++;
		}	
		day=(t)*7-(abs(n-sum))/t;	
	}
	cout<<day;
	return 0;
}

文章来源:https://blog.csdn.net/2301_81591020/article/details/135591089
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。