问题标题: 酷町堂:1917

0
0
已解决
宋梓涵
宋梓涵
新手光能
新手光能

我哪里错了

#include<iostream>
using namespace std;
int main()
{
    int a,c=0;
    cin>>a;
    for(int i=a;i<=13;i++)
    {
        if(i%13==0)
        {
            c=1;
            cout<<i-a;
            break;
        }
    }
    return 0;
}

 


0
已采纳
李祈乐
李祈乐
新手光能
新手光能

for(int i=a;i<=13;i++)

你这一行,

你怎么知道这个循环执不执行?

i如果大于13这循环不执行,

直接跳出了,然后没有输出。

 

 

这一题不明确具体循环次数,可以用while循环

先定义i=0和a

输入a

循环终止条件是:a+i是一个13的倍数。

即:

while((a+i)%13!=0)

如果条件符合

那么:i++;

在每一次i++时做一次判断,

if((a+i)%13==0)
        {
            cout<<i;
            return 0;
        }

直接输出,防止遗漏。

注意:有一种特殊情况,a本身就是13的倍数,也就是这个while循环条件不符合,所以在循环里求出i时就return 0;结束程序,如果循环没有执行,输出i原来的值,也就是0;

    if((a+i)%13==0)
        {
            cout<<i;
            return 0;
        }
    }
    cout<<i;

 

0
0
尹宗鑫
尹宗鑫
新手守护
新手守护

if(i%13==0)错了

是if(i%13!=0)

0
张希晨
张希晨
修练者
修练者

  for(i=1;i<=13;i++)
  {
   if(n%13!=0)
   a=13-n%13;
  }

0
傅文彬
傅文彬
新手天翼
新手天翼

不是for(int i=1;i<=13;i++)

是for(int i=1;i<=100;i++)

 

0
项依凡
项依凡
初级光能
初级光能

if(i%13==0)错了

是if(i%13!=0)

我要回答