题干
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210408193841583.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pva2VyMTU1MTc=,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210408193853985.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pva2VyMTU1MTc=,size_16,color_FFFFFF,t_70)
思路
主要问题就是输入的数据范围很大,无法用C语言已有的数据类型来表示。
因此可以用字符数组来存储每一位数字,通过一个一维字符数组存储所有数,然后对每个字符数字减字符‘0’来转化为正常数字,之后各位相加模3。
核心片段
char str[50*2000];
scanf("%d",&n);
getchar();
char *ps=str;
for(i=0;i<n;i++)
{
scanf("%s",ps);
getchar();
ps=str+strlen(str);
*ps='#';
ps++;
}
*ps='\0';