题解分享
题解分享简介
REPEAT 程序(结果填空) - 题解
本题作为蒟蒻的我属实想不通这题怎么写,只能看看csdn上面一些现成的抄下来,如有大佬,还请教教我怎么更好的理解此题
include
using namespace std;
int main(){
```
//打开并读取文件
FILE \*fp = NULL;
//存放文件地址,替换成自己电脑上的用户名即可,博主是Mac,所以是 这样的地址,windows需要加上分区
char src[]="/Users/xxxxxxx/Desktop/prog.txt";
//得到文件指针
fp = fopen(src, "r");
int fact[10]; //fact:每层存储的倍数,最高十层
char buff[255]; //buff:存储每行的临时变量
int now = 0; //now:表示当前循环层级
int sum = 0; //sum:统计最终结果
//初始化 sum,跳过
fgets(buff, 255, fp);
//循环读取文件每一行
while(fgets(buff, 255, fp))
{
int p=0;
//读取空格数得到循环层数
while(buff[p]==' ')
p++;
//4个空格为一层循环
now = p/4;
//该行格式:REPEAT \*:
//确定第now层的倍数
if(buff[p]=='R')
fact[now] = (buff[p+7]-'0');
//该行格式:A = A + x
//计算该行带来的最终结果
if(buff[p]=='A')
{
//times存储累计倍数,默认为1
int times=1, x=buff[p+8]-'0';
//累计倍数
for(int i=0; i<now; i++)
times = times\*fact[i];
//和
sum = sum+times\*x;
}
}
cout<<sum;
return 0;
```
}
查看全文
0
0
1
2



