Time Limit: 1 SecMemory Limit: 128 MB
Submit: 280Solved: 39
Description
有人很喜欢数字7,喜欢到什么程度呢,就是连能整除7的二位数也喜欢,0不能整除7。
现在有一串数字(数字的首位不为0),他只能从开头取喜欢的数字(取出的数字是连续的)求最多有几个数字他能取出。
Input
有多组数据,每组数据有一个整数(至少1位,至多500位)。
Output
输出相应的答案,占一行。
Sample Input
123456789
707
Sample Output
3
3
参考:zcmu 1316: 数字7 - DragonChilder的博客 - CSDN博客
思路:只要能整除7的一位数和两位数都要计算进去。
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<math.h>
int main(){
int i,m[500];
char n[503];
memset(m,0,sizeof(n));
while(~scanf("%s",n)){
int a=strlen(n);
for(i=0;i<a;i++){
if((i!=a-1)&&(n[i]!='0')&&(n[i+1]!='7')&&(((n[i]-'0')*10+(n[i+1]-'0'))%7==0))
{
if(i==0){
m[i]=0;
i++;
m[i]=2;
}
else
{
m[i]=m[i-1];
i++;
m[i]=m[i-1]+2;
}
}
else if(n[i]=='7')
{
if(i==0)
m[i]=1;
else m[i]=m[i-1]+1;
}
else
{
if(i==0)
m[i]=m[i-1];
else m[i]=m[i-1];
}
}
printf("%d\n",m[i-1]);
}
return 0;
}
网友评论