| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2641 人关注过本帖
标题:今天做oj碰到这道题,17的倍数,参考了一下网上的解题方法还是通不过,求指 ...
取消只看楼主 加入收藏
随手十五字
Rank: 1
来 自:毛里求斯
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-6-9
收藏
 问题点数:0 回复次数:2 
今天做oj碰到这道题,17的倍数,参考了一下网上的解题方法还是通不过,求指导
题目描述
 

 定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。
例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。
输入
输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=10^100),表示待判断的正整数。n=0表示输入结束,你的程序不应当处理这一行。
输出
对于每组测试数据,输出一行,表示相应的n是否是17的倍数。1表示是,0表示否。

样例输入
34
201
2098765413
1717171717171717171717171717171717171717171717171718
0
样例输出
1
0
1
0

#include<stdio.h>
#include<string.h>
int main()
{
    char str[1001];
    int t,a,b,c,d,e,i;
    while(gets(str)!=NULL)
    {
        if(str[0]=='0') return 0;
        t=strlen(str);
        while(t>3)
        {
            d=(str[t-1]-'0')*5;
            c=(str[t-2]-'0');
            b=(str[t-3]-'0')*10;
            a=(str[t-4]-'0')*100;
            e=a+b+c-d;
            str[t-2]=e%10+'0';
            str[t-3]=e/10%10+'0';
            str[t-4]=e/100+'0';
            t--;
        }
        for(e=0,i=0;i<=t-1;i++)
        {
            e=e*10;
            e=e+(str[i]-'0');
        }
        if(e%17==0)
        printf("1\n");
        else
        printf("0\n");
    }
    return 0;
}

#include<stdio.h>
int main()
{
    char a[1001];
    int n,b[1001],i,j,e;
    while(gets(a)!=NULL)
    {
        if(a[0]=='0') return 0;
        for(i=0,n=0;a[i]!='\0';i++)
        {
            b[i]=a[i]-'0';n++;
        }
        j=b[0];
        for(i=1;i<n;i++)
        {
            e=j*10+b[i];j=e%17;
        }
        if(j==0) printf("1\n");
        else printf("0\n");
    }
    return 0;
}
希望各位能给我讲讲哪里出问题了,谢谢0.0
搜索更多相关主题的帖子: 正整数 网上 
2015-06-09 22:58
随手十五字
Rank: 1
来 自:毛里求斯
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-6-9
收藏
得分:0 
首先感谢帮忙,两个都提交了都是答案错误,第二个代码的思路是根据模拟除法做的,还是错了
这是oj给的
=================/1003.out
Right:
1

-----------------
Your:
0

=================
辅助解释:

/**************************************************************
    Problem: 1003
    User: 1405030212
    Language: C
    Result: 答案错误
****************************************************************/

Hello world!
2015-06-10 17:27
随手十五字
Rank: 1
来 自:毛里求斯
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-6-9
收藏
得分:0 
十分感谢,我把gets改成scanf过了!!

Hello world!
2015-06-12 16:39
快速回复:今天做oj碰到这道题,17的倍数,参考了一下网上的解题方法还是通不过, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015947 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved