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;
}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • TerminateProcess Function

     Terminatesthespecifiedprocessandallofitsthreads. BOOLWINAPITerminateProcess(__inHANDLEhProcess,__inUINTuExitCode);ParametershProcessAhand

    2022年4月7日
    40
  • pcAnywhere IP 端口的使用及更改「建议收藏」

    pcAnywhere IP 端口的使用及更改「建议收藏」为了安全服务器的很多端口都关闭,但有时为了管理方便,开启远程控制,pcanywhere是一款不错的软件。要配置防火墙以便可以进行pcAnywhere连接,并且需要了解pcAnywhere使用哪

    2022年7月2日
    23
  • Java多线程常用面试题(含答案,精心总结整理)

    Java多线程常用面试题(含答案,精心总结整理)Java并发编程问题是面试过程中很容易遇到的问题,提前准备是解决问题的最好办法,将试题总结起来,时常查看会有奇效。现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用join方法实现。核心:thread.Jo

    2022年7月15日
    22
  • 项目7+1团队_激励团队冲刺的话

    项目7+1团队_激励团队冲刺的话项目Beta冲刺(团队7/7)

    2022年4月22日
    76
  • scihub论文下载_谷歌学术和scihub的区别

    scihub论文下载_谷歌学术和scihub的区别谷歌学术+SCI-HUB一键下载SCI文献公众号后台回复【万能侠】,免费获得该软件最高版小编经过广泛收集,提供7个谷歌学术有效网址,3个SCIHUB实时更新,永久有效网址Google学术搜索提供可广泛搜索学术文献的简便方法。可以从一个位置搜索众多学科和资料来源:来自学术著作出版商、专业性社团、预印本、各大学及其他学术组织的经同行评论的文章、论文、图书、摘要和文章。Google学术搜索可帮助您在整个学术领域中确定相关性最强的研究。SCI-HUB提供数以百万计的免费接入研究论文和书籍,由亚历山德

    2022年10月11日
    2
  • 观察者模式observer不适用于_观察者模式代码

    观察者模式observer不适用于_观察者模式代码观察者模式Obeserver动机模式定义实例结构图要点总结笔记动机在软件构建过程中,我们需要为某些对象建立 一种“通知依赖关系” —-一个对象发(目标对象)的状态发生改变,所有依赖的对象(观察者对象)都将很好的得到通知。如果这样的依赖关系过于紧密。将使软件不能很好的抵御变化使用面向对象技术 可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。模式定义定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(subject)的状态发生改变时,所有依赖于它的对象都得到通

    2022年8月9日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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