鱼C论坛

 找回密码
 立即注册
查看: 2453|回复: 8

新手求助

[复制链接]
发表于 2021-12-24 17:23:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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[i],&t[i]);
        
        for(j=1;j<=t[i];j++)
        {
            b[j]=a[i]*j;
            
            if(d[b[j]]==0)
            {
                d[b[j]]=1;
            }
            else if(d[b[j]]==1)
            {
                d[b[j]]=0;
                        }
        }
    }

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

    return 0;
}

不明白错在哪里,内层for循环运算总是不能算到最后的位置...
Snipaste_2021-12-24_17-22-19.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-12-24 17:53:41 From FishC Mobile | 显示全部楼层
用异或做,凡是按偶数次(比如2次)的状态不变
奇数次的就是答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-24 18:28:03 From FishC Mobile | 显示全部楼层
wp231957 发表于 2021-12-24 17:53
用异或做,凡是按偶数次(比如2次)的状态不变
奇数次的就是答案

我想知道我错哪里了,算法啥的我还没开始学...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-24 18:53:11 | 显示全部楼层
  1. # Python 3.10.0

  2. n = int(input())
  3. res = 0
  4. for i in range(n):
  5.     a, b = map(float, input().split())
  6.     b = int(b)
  7.     for j in range(1, b+1):
  8.         res ^= int(a*j)
  9. print(res)
复制代码
  1. // C

  2. #include <stdio.h>

  3. int main(){
  4.     int n, b, res = 0;
  5.     float a;
  6.     scanf("%d", &n);
  7.     for(int i = 0; i < n; i++){
  8.         scanf("%f%d", &a, &b);
  9.         for(int j = 1; j < b+1; j++){
  10.             res ^= (int)(a*j);
  11.         }
  12.     }
  13.     printf("%d", res);
  14.     return 0;
  15. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-25 09:55:09 From FishC Mobile | 显示全部楼层
傻眼貓咪 发表于 2021-12-24 18:53

c写的是错的吧...
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-25 10:19:59 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-12-25 10:22 编辑


可以知道哪里错吗?

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

  1. 3
  2. 1.618034 13
  3. 2.618034 7
  4. 1.000000 21
  5. 20
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-25 11:10:37 From FishC Mobile | 显示全部楼层
傻眼貓咪 发表于 2021-12-25 10:19
可以知道哪里错吗?

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

对的对的,看错了,不好意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-25 11:11:20 | 显示全部楼层
fabulist丶 发表于 2021-12-25 11:10
对的对的,看错了,不好意思

吓死宝宝了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-28 14:14:01 | 显示全部楼层
学到了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-17 14:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表