WV.17-五指数数-年份对应手指

本文介绍了一个通过特定循环规律确定手指编号的C++程序。该程序根据输入的年份,计算并输出对应的指头名称。核心算法利用了数学运算找到正确的手指位置。

问题及代码:


/*  
*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,再根据余数的情况确定所对应的手指即可.

学习心得:

找规律。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值