彭泽横琴


私信TA

用户名:uq_97083909623

访问量:12506

签 名:

让回忆纪念最初的感动

等  级
排  名 1319
经  验 2979
参赛次数 1
文章发表 22
年  龄 20
在职情况 学生
学  校
专  业 软件工程

  自我简介:

 

0.0分

14 人评分

  评论区

哪位大哥解释下,为什么不直接拿输入的数对17求余!
2020-04-16 15:37:05
s*10的作用是怎末回事啊,知道控制第一个,但是具体是怎末控制呢
2020-04-08 11:39:14
#include <string.h>
int main(){
	char ch[1000]={0};
	int x=0,len,i=0,y,counter=0,arr[10]={-1};		
	scanf("%s",ch);
	do{
		len=strlen(ch);
		if(len<4){
			//字符转数字
			for(i=0,y=0;i<len;i++){
				y=y*10+ch[i]-'0';
			}
				i=y/10-(y%10*5);
				if(0==i%17){
					arr[counter]=1;
					counter++;
				}else{
					arr[counter]=0;
					counter++;
				}
		}else{

			//字符串预处理 去掉末尾,转换数字*5,再取三位,转换成数字减去 末尾*5,得出的结果再转回字符
			y=5*(ch[len-1]-'0');//末尾的数字*5
			x=(ch[len-4]-'0')*100+(ch[len-3]-'0')*10+(ch[len-2]-'0');//取剩余部分最后三位,转换成数字
			x=x-y;
			//将得到的数字x再转回字符
			if(x>=100){
				ch[len-1]='\0';//需要对字符的末尾,手动加'\0
2020-03-18 15:06:47
我日,按照他的定理也做了,自测答案没问题,但是无法通过答案测试。不按他的定理,直接对字符串求模,居然通过了
#include <stdio.h>
#include <string.h>
int main(){
	char ch[1000]={0};
	int x=0,len,i=0,counter=0,arr[10]={-1};		
	scanf("%s",ch);
	do{
		len=strlen(ch);			
			x=ch[0]-'0';
		for(i=1;i<len;i++){
			x=x*10;
			x=x+ch[i]-'0';
			x=x%17;
		}	
		if(0==x){
			arr[counter]=1;
			counter++;
		}else{
			arr[counter]=0;
			counter++;
		}
		scanf("%s",ch);
	}while('0'!=ch[0]);
	for(i=0;i<counter;i++){
		printf("%d\n",arr[i]);
	}	
	return 0;
}
2020-03-18 15:05:49
没有看懂
我是按照题目给的定理来的,老哥能不能看看,为什么错误50%
#include<stdio.h>
int main(){
	long long int i;
	int a,b[10]={0};
	int k=0;
	while(scanf("%lld",&i)&&i!=0){
		a=i%10;
		i=i/10;
		if((i-5*a)%17==0) b[k]=1;
		k++;
	}
	for(int j=0;j<k;j++){
		printf("%d\n",b[j]);
	}
}
2020-02-28 21:59:13
  • «
  • 1
  • »