求助!!!自己测试没有问题,但是为什么就是不通过
查看原帖
求助!!!自己测试没有问题,但是为什么就是不通过
352285
Titan_Hope楼主2020/8/3 18:28
#include<iostream>
#include<string>
#include<stdio.h> 
using namespace std;
int num[100001] ; 
int main(void)
{
	//首先写输入文件:
	string s1;
	freopen("calcYF.in","r",stdin);
	freopen("calcYF.out","w",stdout);
	//输入人名开头 
	cin>>s1;
	int st;//输入开始的数组 
	cin>>st;
	int mz[11] ;
	//int mz_size;
	//将人名转化成数字字符串 (不能转换成字符串,转换成字符串后分离不出来了)
	for(int i=0;i<s1.size();i++)
	{
		 mz[i] = s1[i]-65+st;//转换成数字 
		 //mz_size = i;
		  
	} 
	//将所有名字的数字的每一位都提取出来
	int temp=mz[0],mz_i;
	int  j=0;
	
	for(int i=0;i<s1.size();i++)
	{
		int w = 100000;
		mz_i= mz[i];
		
		while(mz_i>0)//提取每一位
		{	
			if(w>mz_i) w = w/10;
			else
			{
			temp = mz_i/w;
			num[j] = temp;
			mz_i = mz_i-temp*w; 
			j++;
			}

		} 
	}
//for(int i=0;i<s1.size();i++)cout<<mz[i]<<" ";cout<<endl;
//for(int i=0;i<j;i++)cout<<num[i]<<" ";
	//处理字符mun:
	int len = j;
//	cout<<len<<endl;
	//int  j=0;
	int flag =0;
	while(len>=3)
	{
		if(len==3)
		{
			if(num[0]==1&&num[1]==0&&num[2]==0)
			{
				flag =1;
				break;
			}
			
		}
		int i;
	 	for(i=0;i<len-1;i++)
	 	{
	 		temp =  num[i]+num[i+1];
	 		num[i] =temp%10;//取个位 
	 		//cout<<num[i]<<" "; 
	 	}
	 	//cout<<endl;
	 	len = len-1;
	 }
	 
	cout<<num[0]<<num[1] ;
	if(flag)
	{
		cout<<num[2];
	}
	return 0;
}
2020/8/3 18:28
加载中...