问题及代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:WV.cpp
*作 者:单昕昕
*完成日期:2015年1月28日
*版 本 号:v1.0
*问题描述:如图为手的示意图,大拇指、食指、中指、无名指、小指分别标记为字母A、B、C、D、E.请你按图中箭头所指方向(即A→B→C→D→E→D→C→B→A→B→C→…的方式)从A开始数连续的正整数1,2,3,4…
*程序输入:年份
*程序输出:对应的指头
*/
#include <iostream>
using namespace std;
int main()
{
long long n;
cin>>n;
double k=(n-5)*1.0/4+1;
double s=k-(int)k;
long long num=k;
if (s)
num++;
long long a=5+4*(num-1);
int answer=0;
if (a>n)
answer=a-n;
else
answer=n-a;
if (num%2==0)
answer+=1;
else
answer=5-answer;
if(answer==1)cout<<"大拇指"<<endl;
else if(answer==2)cout<<"食指"<<endl;
else if(answer==3)cout<<"中指"<<endl;
else if(answer==5)cout<<"小指"<<endl;
else cout<<"无名指"<<endl;
return 0;
}
运行结果:
知识点总结:
除去第一个数1,从2开始每8个数为一个循环组依次循环,用年份减去1,然后除以8,再根据余数的情况确定所对应的手指即可.
学习心得:
找规律。。
本文介绍了一个通过特定循环规律确定手指编号的C++程序。该程序根据输入的年份,计算并输出对应的指头名称。核心算法利用了数学运算找到正确的手指位置。
2188

被折叠的 条评论
为什么被折叠?



