C语言分苹果_数据结构:使用C语言

C语言分苹果_数据结构:使用C语言1、题目描述果园里有堆苹果,N(1<N<9)只熊来分。第一只熊把这堆苹果平均分为N份,多了一个,它把多的一个扔了,拿走了一份。第二只熊把剩下的苹果又平均分成N份,又多了一个,它同样把多的一个扔了,拿走了一份,第三、第四直到第N只熊都是这么做的,问果园里原来最少有多少个苹果?示例和说明如下:2、解题思路我的方法很简单就是从最小的可能的数开始,一个一个尝试,满足了测试的要求之后

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1、题目描述

果园里有堆苹果,N(1<N<9)只熊来分。第一只熊把这堆苹果平均分为N份,多了一个,它把多的一个扔了,拿走了一份。第二只熊把剩下的苹果又平均分成N份,又多了一个,它同样把多的一个扔了,拿走了一份,第三、第四直到第N只熊都是这么做的,问果园里原来最少有多少个苹果?

示例和说明如下:

C语言分苹果_数据结构:使用C语言

2、解题思路

我的方法很简单就是从最小的可能的数开始,一个一个尝试,满足了测试的要求之后,就退出循环把这个符合条件的值给找出来,因为是从最小的可能的数开始尝试那么符合条件的肯定就是最小的值了。

3、算法实现

#include <stdio.h>

int main()
{
	int n;
	fscanf(stdin, "%d", &n);	/* 输入熊的个数 */

	int i, temp;
	int cnt;
	int old;

	/* 从第二个数开始找,一直找到合适的数之后推出这个for循环 */
	for(i = 2; ; i++)
	{
		cnt = 0;
		temp = i; old = temp;	/* 保存每一次的结果如果满足条件就把这个结果输出 */
		while((temp%n == 1)&&(temp>0))
		{
			cnt++;
			temp = temp - temp/n - 1;
		}
		if(cnt == n)
		{
			break;
		}
	}

	fprintf(stdout, "%d", old);

	return 0;
}

附加:

在网上找到的一个高手的解法,具体解题思路目前还不是很清楚,先把代码粘贴出来吧,
如果有知道具体的解题思路可以在文章下面给我留言,本人将感激不尽

#include <stdio.h>

int main()
{
	int n;
	fscanf(stdin, "%d", &n);

	int i;
	int apple = 1;
	for(i = 0; i < n; i++)
	{
		apple = apple*n;
	}

	fprintf(stdout, "%d", apple - n + 1);

	return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183664.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Java中Scanner用法总结

    Java中Scanner用法总结最近在做OJ类问题的时候,经常由于Scanner的使用造成一些细节问题导致程序不通过(最惨的就是网易笔试,由于sc死循环了也没发现,导致AC代码也不能通过。。。),因此对Scanner进行了一些总结整理。Scanner类简介Java5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间的某种结合。由于任何

  • 二进制 补码 反码 原码「建议收藏」

    二进制 补码 反码 原码「建议收藏」原码补码反码

  • 谷歌清楚缓存快捷键_清除浏览器缓存的快捷键是什么

    谷歌清楚缓存快捷键_清除浏览器缓存的快捷键是什么我们经常会遇到这些情况,浏览器打开网页打不开,打开网页老是在加载。尤其是在我们在做网页设计的时候,经常预览结果往往没有出现我们想要的结果,很大可能性就是浏览器的缓存没有清除引起的。那么清除浏览器缓存的快捷键是什么呢?佰佰安全网就带大家来了解一下这些打开浏览器,按Ctrl+Shift+Delete,就会出现清除浏览器缓存的框,你可以选择你要清理的东西,点击ok,一切搞定。各种浏览器清除缓存数据的方法…

  • es6 模板字符串_es6 方法模板渲染

    es6 模板字符串_es6 方法模板渲染前言ES6(ES2015)为JavaScript引入了许多新特性,其中与字符串处理相关的一个新特性——模板字面量,提供了多行字符串、字符串模板的功能,相信很多人已经在使用了。字符串模板的基本使用很简单,今天就带大家来了解了解模板字符串。一、基本使用1、传统字符串传统做法需要使用大量的“”(双引号)和+来拼接才能得到我们需要的模版。但是这样是十分不方便的。并且存下一下几点缺陷:1)传统的字符串拼接不能正常换行2)传统的字符串拼接不能友好的插入变量3)传统的字符串拼接不能友好的处理单引号、双引

  • ExtJs formGrid submit

    ExtJs formGrid submit

  • windows server2012 AD域相关操作「建议收藏」

    windows server2012 AD域相关操作「建议收藏」AD域主要作用就是集中管理,限制域内用户或计算机的所有操作,主要管理公司员工,就像通讯录一样,还能管理了电脑,打印机等,权限管理,ADhelper可以实现WEB方式的AD域管理,方便、快捷。其余不懂得还是直接上例子其余自己科普。实操AD域VMA、VMB虚拟机配置为主辅域,域名为szpdc.com; VMA做为GC、SchemaMaster、DomainNamingMa…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号