做网站阳泉网络营销策划书格式
我会将这题的解题的核心思路解为将10进制转化成7进制,毕竟题目上说的很清楚7的几次方
然后附上我认为的最优解
#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
先看一下看的懂嘛?看不懂?没关系就算看不懂相信你对这个代码也有种陌生的熟悉感,和十进制转化为二进制很像
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的几次方