首页 > 代码库 > 金色十月线上编程比赛第一题:小女孩数数
金色十月线上编程比赛第一题:小女孩数数
输出格式完全按照题目要求输出,运行后提示结果出错。出错原因未知。先贴上代码以后再DEBUG-=
答题说明:
输入样例:
1
10
1000000000
输出样例:
1
2
2
#include <stdio.h> #include <stdlib.h> typedef long long FINGER; FINGER getReturn(){ char buffer[12]; char temp = 0; for(int i = 0;i < 10;i++){ temp = getchar(); if(temp == '\n'){ return atoi(buffer); } buffer[i] = temp; } return 0; } typedef struct _FINGERRECORD{ FINGER data; struct _FINGERRECORD *next; } FINGERRECORD; int where(FINGER input){ if(input >= 1 && input <= 5) { return input; } else { int row, line; row = (input - 5) / 4; line = (input - 5) % 4; if(row % 2 == 0) { return (5 - line); } else { return (1 + line); } } } void disp(FINGERRECORD *link){ link = link->next; for(int i = 0; link != NULL; i++){ printf("%d\n",where(link->data)); link = link->next; } } int main() { FINGER f = 0; FINGERRECORD *head, *current, *tail; current = tail = (FINGERRECORD*)malloc(sizeof(FINGERRECORD)); head = NULL; for(int i = 1;; i++){ if(i == 1){ head = current; }else{ tail->next = current; } tail = current; current = (FINGERRECORD*)malloc(sizeof(FINGERRECORD)); FINGER ff = getReturn(); if(ff == 0){ break; }else{ current->data = http://www.mamicode.com/ff;>更新:发现代码第九行有个范围BUG,修改之后依然报错-=
于是只保留核心代码……
#include <iostream> typedef long long FINGER; int where(FINGER input){ if(input >= 1 && input <= 5) { return input; } else { int row, line; row = (input - 5) / 4; line = (input - 5) % 4; if(row % 2 == 0) { return (5 - line); } else { return (1 + line); } } } int main() { FINGER temp; while(1){ std::cin >> temp; std::cout << where(temp) << std::endl; } return 0; }
结果:
果然题目要求与标准答案不一致,又被坑了一次-=
金色十月线上编程比赛第一题:小女孩数数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。