百练OJ 19岁生日礼物-Birthday Gift(数位分离+数字判断)

19岁生日礼物-Birthday Gift
总时间限制: 1000ms 内存限制: 65536kB

描述
今天是小红的19岁生日,小明决定给小红买个生日礼物,但是为了突出是19岁的生日,生日礼物的价格必须和19相关。
一个正整数,如果它是19的倍数或者它的十进制表示中某相邻的两位是19,那么它是和19相关的。
你需要帮助小明判断礼物的价格是否和19相关。

输入
第一行是一个正整数n(int范围),表示总共有n个价格。
下面n行,每行是一个正整数p(int范围),代表礼物的价格。

输出
总共n行,第i行代表输入中第i个价格是否和19相关。如果相关,输出”Yes”,否则,输出”No”。

样例输入
4
95
100
3192
2913

样例输出
Yes
No
Yes
No
【分析】
找与19相关的数,如果是19的倍数,直接输出Yes,否则需要进行数位分离,判断相邻两位是否为19.
【源代码】

#include <stdio.h>
int Sepnum(int n)        //分离n的各位数
{
    int a[12];
    int i=0,j;
    int num=n;
    int flag=0;
    while(num)          //分离n的各位数并保存到数组a中
    {
        a[i++]=num%10;
        num/=10;
    }
    for(j=0;j<i-1;j++)  //注意a数组中保存的各位数由低位到高位
    {
        if(a[j]==9 && a[j+1]==1)
        {
            flag=1;
            break;
        }
    }
    return flag;
}
int main()
{
    int n,price;
    int temp;
    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&price);
        if(price%19==0)
            printf("Yes\n");
        else
        {
            temp=price;
            if(Sepnum(temp))
                printf("Yes\n");
            else
                printf("No\n");
        }
    }
    return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值