P3776.第2题-无限循环程序
题目内容
在计算机科学中,循环是程序设计的基本构造之一用于重复执行一段代码,直至满足某个停止条件然而不当设计的循环可能导致无限循环,即程序陷入一个永不停止的执行状态,这是软件错误的一种常见形式
现有一种编程语言,只有以下五种命令,每种命令最多有两个参数。
这些命令分别是:
label〈string〉:声明一个标签,参数是一个字符串,且每个标签只声明一次。
goto〈string〉:跳转到一个标签,并从标签处开始按顺序执行程序。
halt :停机,程序终止。
print〈string〉:打印一个字符串,并执行下一个命令。
gotorand<label1><label2>:随机跳转到两个标签中的一个,并从标签处开始按顺序执行程序。
当程序执行完最后一句,且没有跳转时,程序终止。
请检查给定的程序是否 可能 无限循环
输入描述
第一行为给定的程序的命令条数为 n,n<100 。
后面 n 行为程序的指令。
所有标签中只含有英文字符,并且长度少于 10 。
print 命令的字符串只含有英文字符,并且长度少于 20 。
输出描述
如果程序可能出现死循环输出 true,否则输出 false 。
样例1
输入
6
label start
print "hello world!"
gotorand start end
print "good bye”
halt
label end
输出
true
说明
每当程序执行到第三句 “gotorand start end" 后,都有可能回到第一句,从头执行,也可能跳到最后一句。
当跳转到第一句会出现死循环,因此输出 true 。
样例2
输入
2
label start
print "hello world!"
输出
false