提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
大整数替换数位
1. 每日一练
题目描述
以字符串的形式给你一个长度为 M 的整数 N,请你计算出对这个数进行一次操作后模 9 的值为 1 的所有可能的不同操作方式。 在一次操作中, 我们可以选择 N 的一个数位 N[i],并把它替换成另一个不同的 0 到 9 范围之内的数 B,两种操作方式不同当且仅当它们选择的 i 或 B 不同。
输入描述:
第一行包含一个整数 M (1 <= M <= 100000)。 第二行包含一个大整数 N。
输出描述:
第一行输出一个整数, 代表对 N 执行一次操作后使 N 模 9 的值为 1 的所有可能的不同操作方式数量。
示例
示例1
输入
4
2345
输出
5
提示
一共有 5 种不同的操作方式使操作后的数模 9 = 1。
前两种是:
i = 0, B = 7
7345 % 9 = 1
i = 1, B = 8
2845 % 9 = 1
2.代码
#include <stdio.h>
#include <string.h>
int main()
{
int n,i,a=0,b,k=0,d,num;
scanf("%d",&n);
char str[n];
scanf("%s",&str);
for (i=0;i<n;i++)
{
a=a+str[i]-'0';
}
for (i=0;i<n;i++)
{
d=str[i]-'0';
num=a-d;
for (b=0;b<10;b++)
{
if((num+b)%9==1)
{
k++;
}
}
}
printf("%d",k);
}
3.运行结果