Fourth_Trainnig

本文深入探讨了代码逻辑的解析与算法的实际应用,涵盖了从基础编程到高级技术的多个层面,包括但不限于数据结构、算法设计、软件工程实践等核心内容。通过详细解释和实例演示,旨在帮助读者提升编程技巧,理解复杂问题的解决之道。
摘要由CSDN通过智能技术生成

#include <cstdio>
#include <cstring>
using namespace std;


char a[26];
void myreverse(char b[])
{
    for(int i=0;i<26;i++)
        a[b[i]-'A']='a'+i;
}
void encode(char str[],int len)
{
    int i,j=0,k;
    int temp[26]={0};
    char b[26];//大写
    for(i=0;i<len;i++)
    {
        b[j++]=str[i];
        temp[str[i]-65]=1;
    }


    for(i=25,k=0;i>=j;k++)
    if(!temp[k])
    {
       b[i--]=('A'+k);
    }
    myreverse(b);
}
int main()
{
      //freopen("in.txt","r",stdin);
     // freopen("ou.txt","w",stdout);
       char str[30],c;
       gets(str);


       encode(str,strlen(str));


       while((c=getchar())!=EOF)
       {
            if(c>='a'&&c<='z')
                printf("%c",a[c-97]);
            else if(c>='A'&&c<='Z')
                printf("%c",a[c-65]-32);
            else
              printf("%c",c);
       }


    return 0;
}






#include <iostream>

#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <string>
using namespace std;


int x,k;
char str[1002];
int mypow(int a,int b)
{
    int ans=1;
    while(b--)
    {
       ans*=a;
    }
    return ans;


}
int solve(int i)
{
    //12X^33  X^33  12X  X 1000
    k=i;
    int j=i;
    while(str[k]&&(str[k]!='-')&&(str[k]!='+'))k++;
    int temp=1;
    if(j<k&&str[j]>='0'&&str[j]<='9')
    {
        temp=0;
        while(j<k&&str[j]>='0'&&str[j]<='9')
        {
            temp=temp*10+(str[j]-'0');
            j++;
        }
    }
    if(j<k&&str[j]=='X')
    {
        j++;
        if(j<k&&str[j]=='^')//
        {
            j++;
            int c=0;
            while(j<k&&str[j]>='0'&&str[j]<='9')
            {
             c=c*10+(str[j]-'0');
             j++;
            }
            return temp*mypow(x,c);
        }
        else //12X  or X
        {
            return temp*x;
        }
    }
    else return temp;//1000
}
void deal()
{
    int i=0,j=0;
    int ans=0;
    while(str[i])
    {
        switch(str[i])
        {
          case '-':
             ++i;
            ans+=(-1*solve(i));
             i=k;
             break;
          case '+':
              ++i;
            ans+=solve(i);
              i=k;
              break;
          default :
            ans+=solve(i);
             i=k;
            break;
        }
    }
    printf("%d\n",ans);
}
int main()
{
    while(~scanf("%d",&x))
    {
        getchar();
        scanf("%s",str);
        deal();
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值