选项生成算法(A~Z)
int ind =Convert.ToInt32(TextBox1.Text);
string ret = "";
for (var i = 0; i < 26; i++)
{
int pow = Convert.ToInt32(Math.Pow(2, i));
if (pow > ind)
{
break;
}
if ((ind & pow) > 0)
{
if (ret.Length == 0)
{
ret = Convert.ToChar(65 + i)+"";
}
else
{
ret += "、" + Convert.ToChar(65 + i);
}
}
}
简单的单项选择题和多项选择题答案生成的后台和前端页面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
int ind =Convert.ToInt32(TextBox1.Text);
string ret = "";
for (var i = 0; i < 26; i++)
{
int pow = Convert.ToInt32(Math.Pow(2, i));
if (pow > ind)
{
break;
}
if ((ind & pow) > 0)
{
if (ret.Length == 0)
{
ret = Convert.ToChar(65 + i)+"";
}
else
{
ret += "、" + Convert.ToChar(65 + i);
}
}
}
//测试分割的是否可行
string[] str=ret.Split('、');
string s = "";
for (int i = 0; i < str.Length; i++) {
s += str[i]+",";
}
TextBox2.Text = s;
//return ret;
}
}
ps:js的选项生成算法在上两篇文章中