我是靠谱客的博主 畅快楼房,最近开发中收集的这篇文章主要介绍single dog,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

假如没有情侣存在,那么单身狗一定是一个非常恐怖的生物。他们可以去电影院最多一人占据3个座位(大概是因为他们不愿意和别人坐在相邻的位置)难以想象他们为什么会有这么强大的战斗力。

那么问题来了。

假如一只单身狗的ID十进制下表示为N,在D进制下,他的战斗力为数字x出现的次数,而他的最大战斗力,则是所有进制下的战斗力中最大的那个。

n不大于10000, x为0到9中的一个数。D大于等于2.

给出n和x,问这只单身狗的战斗力。

样例输入:

3 1

样例输出:

2

这是一道好题:)

#include<stdio.h>
int singledog(int n, int x) {
int d, i = 0, a[10000] = {0}, maxfight = 0;
for (d = x+1; d <= n; d++) {
int temp, m = n;
while (m != 0) {
temp = m % d;
if (temp == x) a[i] = a[i] + 1;
m = m / d;
}
if (a[i] > maxfight) maxfight = a[i];
i++;
}
printf("%dn", maxfight);
}
int main() {
int n, x;
scanf("%d%d", &n, &x);
singledog(n, x);
return 0;
}

然而上面这段代码在数据大的时候会超时、、、╥﹏╥…

#include<stdio.h>
int MAX(int a, int b) {
return a > b ? a : b;
}
int sol(int n, int d, int x) {
int tmp, sum = 0;
while (n > 0) {
tmp = n % d;
if (tmp == x) sum++;
n /= d;
}
return sum;
}
int main() {
int n, x, i;
scanf("%d%d", &n, &x);
int ans = 0;
for (i = 2; i <= n+1; i++) {
ans = MAX(sol(n, i, x), ans);
}
printf("%dn", ans);
return 0;
}

(๑•̀ㅂ•́)و✧

最后

以上就是畅快楼房为你收集整理的single dog的全部内容,希望文章能够帮你解决single dog所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部