Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 指数程序_C_Exponentiation - Fatal编程技术网

C 指数程序

C 指数程序,c,exponentiation,C,Exponentiation,问题是 南希讨厌任何包含数字“13”的字符串。克劳索想送给她一根弦,他正在考虑他的选择,当然他永远不会选择一根有“13”作为子串的弦 告诉Clouseau由N个字符组成的此类字符串的总数。字符串可以包含0-9之间的任意整数,可以重复任意次数 输入: 输入文件的第一行包含一个数字T,表示测试用例的数量。以下T行,每行包含一个整数N 输出: 输出文件应在一个新行中包含每个查询的答案,该新行的模数为1000000009 限制条件: 1吨100000, 0 N 1000000009 我的逻辑不正确 #

问题是

南希讨厌任何包含数字“13”的字符串。克劳索想送给她一根弦,他正在考虑他的选择,当然他永远不会选择一根有“13”作为子串的弦

告诉Clouseau由N个字符组成的此类字符串的总数。字符串可以包含0-9之间的任意整数,可以重复任意次数

输入: 输入文件的第一行包含一个数字T,表示测试用例的数量。以下T行,每行包含一个整数N

输出: 输出文件应在一个新行中包含每个查询的答案,该新行的模数为1000000009

限制条件: 1吨100000, 0 N 1000000009

我的逻辑不正确

# include <stdio.h>
# define MOD 1000000009

unsigned long long mod_pow(unsigned long long num, unsigned long long pow, unsigned long long mod)
{
    unsigned long long test;
    unsigned long long n = num;
    for(test = 1; pow; pow >>= 1) {

        if (pow & 1)
            test = ((test % mod) * (n % mod)) % mod;
        n = ((n % mod) * (n % mod)) % mod;
    }

    return test;
}

int main(int argc, char* argv[])
{

    long t;

    unsigned long long total_no, bad_no, n;

    scanf ("%ld", &t);

    while (t--) {
    
        scanf ("%lld", &n);

        if (n != 1) {
      
            total_no = (10 * (mod_pow (10, n-1, MOD))) % MOD;
    
            bad_no = ((n - 1) * (mod_pow(10, n-2, MOD))) % MOD;

            printf ("%lld\n", (((total_no - bad_no) % MOD)));
        }
        else
            printf ("10\n");

    }
    return 0;
}
#包括
#定义MOD 1000000009
无符号长长模功率(无符号长模功率、无符号长模功率、无符号长模功率)
{
无符号长-长试验;
无符号长n=num;
用于(测试=1;功率;功率>>=1){
如果(功率和1)
测试=((测试%mod)*(n%mod))%mod;
n=((n%mod)*(n%mod))%mod;
}
回归试验;
}
int main(int argc,char*argv[])
{
长t;
无符号长-长-长总计编号,坏编号,n;
scanf(“%ld”、&t);
而(t--){
scanf(“%lld”、&n);
如果(n!=1){
总功率=(10*(模功率(10,n-1,模))%模;
错误号=((n-1)*(mod_-pow(10,n-2,mod)))%mod;
printf(“%lld\n”,((总数-坏数)%MOD));
}
其他的
printf(“10\n”);
}
返回0;
}

您可以使用此功能:

long long int  bigmod ( long long a, long long p, long long m )
{
    if ( p == 0 )return 1; // If power is 0, then a ^ 0 = 1 for any value of a, And 1 Mod m=1 for any value of m, So return 1

    if ( p % 2 ) // If power is odd, Split it : a ^ 5 =( a )* (a ^ 4) --> left and right child respectively.
    {
        return ( ( a % m ) * ( bigmod ( a, p - 1, m ) ) ) % m; 
    }
    else //If power is even then split it equally and return the result...
    {
        long long c = bigmod ( a, p / 2, m ); 
        return ( (c%m) * (c%m) ) % m;
    }
}
并按如下方式调用此函数:

int main(){

     // take input....
    //Calling...
    printf("result is %lld\n",bigmod(a,p,MOD)); // 
   return 0;   
}

使用调试器逐行检查代码,同时查看相关变量的值。希望这能帮助你理解正在发生的事情。你能告诉我我的逻辑是否正确吗?我刚刚给了你一个提示,告诉你如何自己解决这个问题。先这样做。即使你仍然无法理解,那么它也会给你的问题提供足够的提示,你可以把这些提示包含在你的问题中?说真的,这些任务是谁写的?南希想写小说,但他们告诉她她写得很糟糕,所以她最终写的是编程书。。。。