蓝桥杯【奇怪的捐赠】c语言

我会将这题的解题的核心思路解为将10进制转化成7进制,毕竟题目上说的很清楚7的几次方

然后附上我认为的最优解

c 复制代码
#include<stdio.h>
int main()
{
	int n = 1000000;
	int sum = 0;
	while (n != 0)
	{
		int a;
		a = n % 7;
		n = n / 7;
		sum += a ;
	}
	printf("%d", sum);
	return 0;
}
//输出16

先看一下看的懂嘛?看不懂?没关系就算看不懂相信你对这个代码也有种陌生的熟悉感,和十进制转化为二进制很像

c 复制代码
while (n != 0)
{
	a = n % 2;
	n = n / 2;
	sum += a * y;
	y *= 10;
}//10进制转化为2进制的代码

**但这题要求的是最多可以分给多少人,而不是7进制的代码,**所以只需要求n可以尽可能的被7的整数倍整除几次

举个例子假设n=10,那么这题的解就是4,

3+7=3 * 7^0+1 * 7^1

那n=100呢?那么题的解就为4,

2+98=2+49*2=2 * 7^0+2 * 7^2

还抽象吗?

第一个a求的是会有几个1,也就是几个7的0次方,

后面每一个非0的a求的都是当下7的最低的次方有几个。

带入100

100%7=2,所以有2个7的0次方

100-2=98,98/7=14,14/7=2,98里面有2个7的平方

很妙的一点就是a不等于0时都代表着几个a的几次方

相关推荐
闻缺陷则喜何志丹3 小时前
【C++贪心】P8769 [蓝桥杯 2021 国 C] 巧克力|普及+
c++·算法·蓝桥杯·洛谷
小莞尔4 小时前
【51单片机】【protues仿真】基于51单片机智能路灯控制系统
c语言·stm32·单片机·嵌入式硬件·51单片机
迎風吹頭髮15 小时前
UNIX下C语言编程与实践32-UNIX 僵死进程:成因、危害与检测方法
服务器·c语言·unix
老侯(Old monkey)18 小时前
C语言:将字符串逆序存放
c语言·字符串·函数调用
say_fall21 小时前
精通C语言(2.结构体)(内含彩虹)
c语言·开发语言·windows
running thunderbolt1 天前
项目---网络通信组件JsonRpc
linux·服务器·c语言·开发语言·网络·c++·性能优化
egoist20231 天前
[linux仓库]信号快速认识[进程信号·壹]
linux·c语言·信号处理·信号·前后台进程
旭意1 天前
C++微基础备战蓝桥杯之数组篇10.1
开发语言·c++·蓝桥杯
青草地溪水旁1 天前
VSCode C/C++ 构建任务配置文件 `tasks.json` 全字段深度解析
c语言·c++·vscode
代码改善世界1 天前
【C语言操作符终极指南】万字总结:从二进制到表达式求值,全方位解析+避坑指南
c语言