fabulist丶 发表于 2021-12-24 17:23:48

新手求助

#include<stdio.h>

int main()
{
           int i,n,t[]={0},d[]={0},b[]={0},j;
    double a[]={0};


    scanf("%d",&n);

    for(i=0;i<n;i++)
    {
      scanf("%lf %d",&a,&t);
      
      for(j=1;j<=t;j++)
      {
            b=a*j;
            
            if(d]==0)
            {
                d]=1;
            }
            else if(d]==1)
            {
                d]=0;
                        }
      }
    }

    for(i=0;i<2000000;i++)
    {
      if(d==1)
      {
            printf("%d ",i+1);
      }
    }

    return 0;
}

不明白错在哪里,内层for循环运算总是不能算到最后的位置...

wp231957 发表于 2021-12-24 17:53:41

用异或做,凡是按偶数次(比如2次)的状态不变
奇数次的就是答案

fabulist丶 发表于 2021-12-24 18:28:03

wp231957 发表于 2021-12-24 17:53
用异或做,凡是按偶数次(比如2次)的状态不变
奇数次的就是答案

我想知道我错哪里了,算法啥的我还没开始学...{:10_245:}{:10_245:}

傻眼貓咪 发表于 2021-12-24 18:53:11

# Python 3.10.0

n = int(input())
res = 0
for i in range(n):
    a, b = map(float, input().split())
    b = int(b)
    for j in range(1, b+1):
      res ^= int(a*j)
print(res)// C

#include <stdio.h>

int main(){
    int n, b, res = 0;
    float a;
    scanf("%d", &n);
    for(int i = 0; i < n; i++){
      scanf("%f%d", &a, &b);
      for(int j = 1; j < b+1; j++){
            res ^= (int)(a*j);
      }
    }
    printf("%d", res);
    return 0;
}

fabulist丶 发表于 2021-12-25 09:55:09

傻眼貓咪 发表于 2021-12-24 18:53


c写的是错的吧...

傻眼貓咪 发表于 2021-12-25 10:19:59

本帖最后由 傻眼貓咪 于 2021-12-25 10:22 编辑

fabulist丶 发表于 2021-12-25 09:55
c写的是错的吧...

可以知道哪里错吗?

我用你给的样例输入没有问题啊?

3
1.618034 13
2.618034 7
1.000000 21
20

fabulist丶 发表于 2021-12-25 11:10:37

傻眼貓咪 发表于 2021-12-25 10:19
可以知道哪里错吗?

我用你给的样例输入没有问题啊?

对的对的,看错了,不好意思{:10_247:}

傻眼貓咪 发表于 2021-12-25 11:11:20

fabulist丶 发表于 2021-12-25 11:10
对的对的,看错了,不好意思

吓死宝宝了{:10_282:}

学不会绝不改名 发表于 2021-12-28 14:14:01

学到了
页: [1]
查看完整版本: 新手求助