70,020
社区成员




#include<stdio.h>
main()
{
int i;
int m=0;
int n;
int b;
for(i=1;i<(1<<31)-1;i++)
{
n=i;
b=0;
while(n%10!=7&&n>0){
n=n/10;
}
if(n!=0)
{
m++;
b=1;
}
if(!b&&i%7==0) {
m++;
b=1;
}
if(!b) m=0;
if(m==1){
printf("%d\n",i-m+1);
break;
}
}
}
#include<stdio.h>
int number (int m)
{
int i;
int x=0;
int n;
int b;
for(i=1;i<(1<<31)-1;i++)
{
n=i;
b=0;
while(n%10!=7&&n>0){
n=n/10;
}
if(n!=0)
{
x++;
b=1;
}
if(!b&&i%7==0) {
x++;
b=1;
}
//if(!b) x=0; //楼主代码的逻辑错了
if(b==0) x=0;
if(x==m){
printf("%d\n",i-x+1);
break;
}
}
return 0;
}
//start 提示:自动阅卷起始唯一标识,请勿删除或增加。
int main()
{
printf("%d",number(11));
}
//end //提示:自动阅卷结束唯一标识,请勿删除或增加。
[/quote]哥哥,逻辑没问题!运行不出错,是结果错了
#include<stdio.h>
int number (int m)
{
int i;
int x=0;
int n;
int b;
for(i=1;i<(1<<31)-1;i++)
{
n=i;
b=0;
while(n%10!=7&&n>0){
n=n/10;
}
if(n!=0)
{
x++;
b=1;
}
// if(!b&&i%7==0) { // 貌似这里也错了
if(b==0 &&i%7==0) {
x++;
b=1;
}
//if(!b) x=0; //楼主代码的逻辑错了
if(b==0) x=0;
if(x==m){
printf("%d\n",i-x+1);
break;
}
}
return 0;
}
//start 提示:自动阅卷起始唯一标识,请勿删除或增加。
int main()
{
printf("%d",number(11));
}
//end //提示:自动阅卷结束唯一标识,请勿删除或增加。
2个地方逻辑错误,转成 C# 运行了一下,
m = 2, output : 27
m = 7, output : 70
m = 11, output : 270
注意第二个sample, 从 70开始其实可以连续拍手10次, 代码输出的是 连续拍手次数 大于等于 m ,并非仅 等于 m
#include<stdio.h>
int number (int m)
{
int i;
int x=0;
int n;
int b;
for(i=1;i<(1<<31)-1;i++)
{
n=i;
b=0;
while(n%10!=7&&n>0){
n=n/10;
}
if(n!=0)
{
x++;
b=1;
}
if(!b&&i%7==0) {
x++;
b=1;
}
//if(!b) x=0; //楼主代码的逻辑错了
if(b==0) x=0;
if(x==m){
printf("%d\n",i-x+1);
break;
}
}
return 0;
}
//start 提示:自动阅卷起始唯一标识,请勿删除或增加。
int main()
{
printf("%d",number(11));
}
//end //提示:自动阅卷结束唯一标识,请勿删除或增加。
if (n != 0)
{
// x++;
b = true;
}
if ( i % 7 == 0)
{
//x++;
b = true;
}
if (!b) x = 0;
else x++;