hdu 5867

来源:互联网 发布:如何编写app软件 编辑:程序博客网 时间:2024/06/05 19:21

题目链接“

直接模拟,不过我比较笨花了好长时间

#include<stdio.h>#include<iostream>#include<algorithm>#include<map>#include<string.h>using namespace std;int a[1010];int b[1010]= {0,3,3,5,4,4,3,5,5,4,3,6,6,8,8,7,7,9,8,8,6};int main(){    b[30]=6;    b[40]=5;    b[50]=5;    b[60]=5;    b[70]=7;    b[80]=6;    b[90]=6;    b[1000]=11;    int t;    scanf("%d",&t);    int m,len,k,p;    int sum=0;    for(int i=1; i<=t; i++)    {        scanf("%d",&a[i]);        sum=0;        for(int j=1; j<=a[i]; j++)        {            if(j==1000)            {                sum+=b[j];            }            else            {                if(j/100)                {                    sum+=b[j/100];                    sum+=7;                    if(j%100<=20&&j%100>0)                    {                        sum+=b[j%100];                        sum+=3;                    }                    else if(j%100>20)                    {                        m=j%100;                        sum+=b[m%10];                        sum+=b[m-m%10];                        sum+=3;                    }                }                else                {                    if(j>0&&j<=20)                        sum+=b[j];                    else                    {                        sum+=b[j%10];                        sum+=b[j-j%10];                    }                }            }        }        printf("%d\n",sum);    }    return 0;}
0 0