码迷,mamicode.com
首页 > 其他好文 > 详细

n个人数3找出最后一个剩余人号码的改进版

时间:2015-08-26 20:31:50      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:c语言

#include <stdio.h>

#include <stdlib.h>


int LastNum(int n)

{

 int i = 0;

 int out = 0; //退出的人数

 int num = 0; //报数

 int lastnum = 0;

 int *a;


 if(n <= 0){

printf("Person num is illegal\n");

return -1;

 }

 a=(int*)malloc(n*sizeof(int));


 for (i = 0; i < n; i++)

 {

  a[i] = 1;

 }


 i = 0;

 while (out != n-1)

 {

  if (a[i] == 1)

  {

   num++;

  }

  if (num == 3)

  {

   a[i] = 0;

   num = 0;

   out++;

  }

  i++;

  if (i == n)

  {

   i = 0;

  }

 }


 for (i = 0; i < n; i++)

 {

  if (a[i] == 1)

  {

   lastnum = ++i;

   break;

  }

 }

 return lastnum;

}


void main()

{

 int n;

 printf("Please input total person number:");

 scanf("%d", &n);

 printf("The last person number is %d\n", LastNum(n)); 

}


n个人数3找出最后一个剩余人号码的改进版

标签:c语言

原文地址:http://whatyouwant.blog.51cto.com/10579929/1688438

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!