OR45. 删数
描述
输入描述
每组数据为一行一个整数n(小于等于1000),为数组成员数输出描述
一行输出最后一个被删掉的数的原始下标位置。示例1
输入:
8
输出:
6
示例2
输入:
1
输出:
0
C 解法, 执行用时: 1ms, 内存消耗: 224KB, 提交时间: 2018-08-09
#include "stdio.h" #include "malloc.h" int DeleteData(int *Input,int *OutPut,int len,int yu) { int i,cnt; cnt=0; for(i=0;i<len;i++) { if((i+yu)%3==2) { } else { OutPut[cnt]=Input[i]; cnt++; } } yu=(len+yu)%3; if(cnt==1) { return OutPut[0]; } else { return DeleteData(OutPut,Input,cnt,yu); } } int main() { int Num; int i; int reSult; while(~scanf("%d",&Num)) { if(Num>=1000) { Num=999; } int OutPut[1000]; int Input[1000]; for(i=0;i<1000;i++) { Input[i]=i; } reSult=DeleteData(Input,OutPut,Num,0); printf("%d\n",reSult); } return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 364KB, 提交时间: 2020-02-07
#include <stdio.h> int main() { int num = 0; while (scanf("%d", &num) != EOF) { int i = 0; int target = 0; for (i = 2; i <= num; i++) { target = (target + 3) % i; } /* int target = 0; int size = num; while (size > 1) { target = (target + 3) % size; size--; } */ printf("%d\n", target); } return 0; }