看见他计划


私信TA

用户名:hg59201

访问量:21326

签 名:

等  级
排  名 781
经  验 3600
参赛次数 0
文章发表 29
年  龄 0
在职情况 学生
学  校 河北工程大学
专  业

  自我简介:

解题思路:
最大数字有100多个零 ,没有这么大还能存进 int 或 long int的 只能用 字符数组 每一个元素存进一位

但是怎么 算呢,其实就是一位位的削减 ,看代码吧!

#include<stdio.h>

#include<string.h>

int main(){

char str[120];

int l=0;

int s=0;int i;

while(~scanf("%s",&str)){

if(str[0]=='0')

break;


l=0;

l=strlen(str);

while(l>=4){

    s=(str[l-4]-'0')*100+(str[l-3]-'0')*10+(str[l-2]-'0')-(str[l-1]-'0')*5;

    l--;

    str[l-3]=s/100+'0';

    str[l-2]=(s-(s/100)*100)/10+'0';

    str[l-1]=(s-(s/100)*100-((s-(s/100)*100)/10)*10)+'0';

}   // 削减代码

//削减后 只存在 三位或 两位 所以分类判断

if(l==3){ //

s=(str[0]-'0')*100+(str[1]-'0')*10+(str[2]-'0');

if(s%17==0)

printf("1\n");

else printf("0\n");

}

if(l==2){

s=(str[0]-'0')*10+str[1]-'0';

if(s%17==0)

printf("1\n");

else printf("0\n");

}


 

0.0分

0 人评分

  评论区

你好,請問我這道題哪裏錯了,運行的時候是跟題目一樣的
#include<stdio.h>
int main()
{
int a[4],k,j,g;
int i=0;
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
k=a[i]%10;
j=k*5;
a[i]=a[i]/10;
a[i]=a[i]-j;
}
for(i=0;i<4;i++)
{
if(a[i]%17==0)
printf("1");
else
printf("0");
}
}
2019-07-12 11:48:17
  • «
  • 1
  • »