求在 1到100中, 任选两个不同的数,要求它们的和能被3和7整除的数的对数

求大佬帮助解惑。是c语言
(注意:3+5和5+3认为是同一对数)。

给你写好了:

#include <stdio.h>
int main()
{
int n=0,x=1,y=1;

for(x=1; x<=100; x++){
    for(y=1;y<=100;y++)
    if((x+y)%3==0&&(x+y)%7==0&&x!=y) {
        n++;
    }
}
  printf("%d",n/2);
return 0;
}

img

双重循环就行了哦

int main()
{
  int count = 0;
  for(int i=1;i<=100;i++)
        for(int j=i;j<=100;j++)
      {
            int n = i+j;
            if((n%3==0) && (n%7==0))
            {
                printf("%d %d \n",i,j);
                count++;
            }
      }
      printf("共有%d对数\n",count);
  return 0;
}

用双层循环扫一遍就行
代码如下
有帮助望采纳

#include <stdio.h>
#define max 101
int main()
{
    int count = 0;
    for (int i = 1; i < max; i++)
    {
        for (int j = i; j < max; j++)
        {
            if ((i + j) % 21 == 0)
            {
                // printf("%d %d\n", i, j);
                count++;
            }
        }
    }
    printf("%d", count);
}

代码如下:

#include <stdio.h>
int main()
{
    int count=0;
    int x,y;
     
    for(x=1; x<=100; x++)
    {
        for(y=1;y<=100;y++)
        {
            if((x+y)%3==0&&(x+y)%7==0) 
            {
                if(x!=y)
                {
                  count++;
                }
                
            }
        }
    }
    printf("%d",count/2);
    return 0;
}

答案236

void main(void){
    int cnt = 0;
    int i, j;
    for (i = 1; i <= 199; i++)  //1到100内的两不同数之和最大为199
    {
        if (i % 21 == 0)   //被3和7整除一定是21的倍数
            for (j = 1; j <= ((i - 1) >> 1); j++)
            {
                if (i - j <= 100) cnt++;   //约束一下,数对中有大于100的数则不加入答案
            }
    }
    printf("共有%d对数", cnt);
    return;
}