3 条题解

  • 0
    @ 2023-10-19 23:49:28
    #include<stdio.h>
    int n;
    long long m;
    long long ksm(long long m)
    {
    long long sum = 2;
    long long p = 1;
    while ((p * 2)< m)
    {
    sum = (sum * sum) % 1000000;
    p *= 2;
    }
    if (p != m)
    {
    m = m - p;
    sum = (ksm(m) * sum) % 1000000;
    }
    return sum;
    }
    
    int main()
    {
    scanf("%d", &n);
    while (n --)
    {
    scanf("%lld", &m);
    printf("%lld\n", ksm (m) - 1);
    m = 0;
    }
    return 0;
    }
    
    
    • 0
      @ 2023-10-8 22:26:41
      #include<iostream>
      #include<vector>
      #include<algorithm>
      #include <bits/stdc++.h>
      using namespace std;
      
      //投机取巧,找规律,数量大于62500时,每62500个数作为一个循环,保留的六位数为109376
      int main() {
          int n;
          cin >> n;
          while (n--) {
              int x;
              cin >> x;
              int sum=1;
              if(x<62500) {
                  while (x--) {
                      sum *= 2;
                      if (sum > 999999)
                          sum %= 1000000;
                  }
                  cout << sum - 1 << endl;
              }
              else
              {
                  x%=62500;
                  sum=109376;
                  while (x--) {
                      sum *= 2;
                      if (sum > 999999)
                          sum %= 1000000;
                  }
                  cout << sum - 1 << endl;
              }
          }
          return 0;
      }
      
      • 0
        @ 2023-10-8 20:33:44
        薯饼海特供(快速幂版)
        #include<stdio.h>
        int ksm(int n);
        int main()
        {
        	int n;
        	scanf("%d",&n);
        	while(n--)
        	{
        		int m;
        		scanf("%d",&m);
        		long long sum=ksm(m);
        		printf("%lld\n",sum-1);
        	}
        }
        
        int ksm(int n)
        {
        	long long ans=1;
        	long long a=2;
        	while(n!=0)
        	{
        		if(n%2!=0)
        		{
        			ans=ans*a%1000000;
        		}
        		a=(a*a)%1000000;
        		n/=2;
        	}
        	return ans;
        }```
        
        • 1

        信息

        ID
        156
        时间
        1000ms
        内存
        128MiB
        难度
        6
        标签
        (无)
        递交数
        421
        已通过
        130
        上传者