2 条题解

  • 0
    @ 2025-10-8 16:57:50
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e6+10;
    int s[N], len; map<int, int> mp;
    int main()
    {
        int a, b, n; scanf("%d%d%d", &a, &b, &n);
        if(a%b==0) {printf("-1\n"); return 0;}
        a%=b; mp.clear(); len=0;
        while(mp[a]==0 && a)
        {
            if(len>n) {printf("0\n"); return 0;}
            mp[a]=len+1;
            s[++len]=a/b;
            a=a%b*10;
        }
        if(a==0) {printf("-1\n"); return 0;}
        else 
        {
            for(int i=mp[a]; i<=len; i++)
                printf("%d", s[i]);
            printf("\n");
        }
        return 0;
    }
    
    • 0
      @ 2025-10-8 16:57:38
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1e6+10;
      int s[N], len; map<int, int> mp;
      int main()
      {
      	int a, b, n; scanf("%d%d%d", &a, &b, &n);
      	if(a%b==0) {printf("-1\n"); return 0;}
      	a%=b; mp.clear(); len=0;
      	while(mp[a]==0 && a)
      	{
      		if(len>n) {printf("0\n"); return 0;}
      		mp[a]=len+1;
      		s[++len]=a/b;
      		a=a%b*10;
      	}
      	if(a==0) {printf("-1\n"); return 0;}
      	else 
      	{
      		for(int i=mp[a]; i<=len; i++)
      			printf("%d", s[i]);
      		printf("\n");
      	}
      	return 0;
      }
      • 1

      *【模拟】分数化小数的循环节

      信息

      ID
      1534
      时间
      1000ms
      内存
      256MiB
      难度
      1
      标签
      递交数
      27
      已通过
      24
      上传者