数字权重

   日期:2021-03-03     浏览:158    评论:0    
核心提示:小a有一个n位的数字,但是它忘了各个位上的数是什么,现在请你来确定各个位上的数字,满足以下条件:设第i位的数为ai,其中a1为最高位,an为最低位,K为给定的数字不含前导0请你求出满足条件的方案数输入描述:两个整数N, K若存在无解的情况,请输出0输出描述:一个整数表示答案,对109 + 7取模示例1输入2 3输出6说明满足条件的数有:14, 25, 36, 47, 58, 69示例2输入2 -3输出7说明满足条件的数有:41, 52, 63, 74, 85

小a有一个n位的数字,但是它忘了各个位上的数是什么,现在请你来确定各个位上的数字,满足以下条件:

设第i位的数为ai,其中a1为最高位,an为最低位,K为给定的数字

  1. 不含前导0

  2. 请你求出满足条件的方案数

输入描述:
两个整数N, K

若存在无解的情况,请输出0

输出描述:
一个整数表示答案,对109 + 7取模
示例1
输入
2 3
输出
6
说明
满足条件的数有:14, 25, 36, 47, 58, 69
示例2
输入
2 -3
输出
7
说明
满足条件的数有:41, 52, 63, 74, 85, 96, 30
示例3
输入
4 3
输出
600
说明
可能的方案有:1234, 1334
示例4
输入
4 -3
输出
700

备注:
对于30%的数据:n, |k| = 5
对于60%的数据:n, |k| ≤ 1000
对于100%的数据:n, |k| ≤ 1013
保证n > 1

#include<stdio.h>
long long n,k,ans,a,p=1e9+7;
int main()
{ 
	scanf("%lld%lld",&n,&k);
	for(int i=1;i<=9;i++)
		if (0<=i+k&&i+k<=9) ans++;
	a=10,n-=2;
	while (n)
	{ 
		if (n&1) ans=ans*a%p;
		a=a*a%p;
		n>>=1;
	}
	printf("%lld\n",ans);
	return 0;
}
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服