用VB编程17人围成一圈,编号为1-17从1号开始报数,报到3的倍数的人离开一直数下去,直到剩下1人,求此人编号.

作者&投稿:星歪 (若有异议请与网页底部的电邮联系)
VB 有十七个人围成一圈(编号为0~16),第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去~

Private Sub Command1_Click()
Form1.Cls
Dim a(1 To 17) As Integer
Dim i As Integer, j As Integer, k As Integer
For i = 1 To 17
a(i) = i - 1
Next
i = 0
j = 0
k = 17
Do While k > 1
For i = 1 To 17
If a(i) > -1 Then
j = j + 1
If j = 3 Then
j = 0
Print a(i)
a(i) = -1
k = k - 1
End If
End If
Next
Loop
Print "剩下的是:"
For i = 1 To 17
If a(i) > -1 Then
Print a(i)
Exit For
End If
Next
End Sub


C的
int all=17,need=17,k=3;
int x=0,y=0,i=0,j=0;
int a[5001]={0};
while(1)
{
x=x%all+1;
if(a[x]==0)
{
i=(i+1)%k;
if(i==0)
{y=y+1;a[x]=1;}
}
if(y==need)break;
}

Private Sub Form_Click( )
Const OUT As Integer = -1
Dim n As Integer,m As Integer,i As Integer,num1 As Integer,num2 As Integer
Dim a( ) As Integer
n = 17
m = 3
ReDim a(n)
For i = 1 To n
a(i) = i
Next
num1 = 0
Do
For i = 1 To n
If a(i) < > OUT Then
Num1 = num1 + 1
If num1 Mod m = 0 Then
num2 = num2 + 1
If num2 = n Then
Print a(i);
Exit Do
End If
End If
End If
Next i
Loop
End Sub

希望楼主能给偶点分分拉HOHO```

数学题目.............


用VB编写程序,有17个人围成一圈(编号0~16),第0号的人开始从1报数,凡 ...
int all=17,need=17,k=3;int x=0,y=0,i=0,j=0;int a[5001]={0};while(1){ x=x%all+1;if(a[x]==0){ i=(i+1)%k;if(i==0){y=y+1;a[x]=1;} } if(y==need)break;}

VB编程17人编号为0-16围成一圈,0号人开始从1报数,凡是报数为3倍数的...
Private Sub Form_Click()Dim pin(0 To 16) As Integer Dim i%, n%, order For i = 0 To 16 pin(i) = 1 Next n = 17 i = 0 order = 0 While n > 1 If pin(i) = 1 Then order = order + 1 If order Mod 3 = 0 Then pin(i) = 0 n = n - 1 Print i & " ...

用VB编程17人围成一圈,编号为1-17从1号开始报数,报到3的倍数的人离开一...
DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "CPointer"Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = False Option ...

用VB编程17人围成一圈(编号0-16)第0号开始从1报数,报到3的倍数的人离...
Dim s(1 To 17) As Integer '定义s 存放17个元素 Do Until m = 16 '做以下循环直到m=16 k = k + 1 '赋值 你懂的 If k > 17 Then k = 1 '到17为一个循环 If s(k) = 0 Then '觉得是没有给出dim k=0 l = l + 1 '这个 l也没给。。。 l是不是...

VB 有十七个人围成一圈(编号为0~16),第0号的人开始从1报数,凡报到3的...
k = 17 Do While k > 1 For i = 1 To 17 If a(i) > -1 Then j = j + 1 If j = 3 Then j = 0 Print a(i)a(i) = -1 k = k - 1 End If End If Next Loop Print "剩下的是:"For i = 1 To 17 If a(i) > -1 Then Print a(i)Exit For End If Next E...

【求助】VB编程高手一个小题!火急!!
Text & a(i)Else Text2.Text = Text2.Text & a(i) & ","End If Next i End Sub Private Sub Form_Load()Text1.Text = "{15,8},{24,8},{22,8},{35,6},{6,4},{23,8},{12,8},{14,4},{24,4},{17,4},{5,4},{9,9}"Text2.Text = ""End Sub ...

vb编程题,急!!!
20 8 72 15 11 74 10 14 76 5 17 78 这里答案。不是编程算出来的,而是列式计算出来的。以下是方法,希望对你有用。设:老人人数 = x 中年人人数=y 小孩人数 =x x+y+z=100 2x+3y+z\/2=100 -> x+y=100-z, 2(x+y)+y+z\/2=100 -> 2(100-z)+y...

VB习题解答
3 = 0 Then s = Replace(s, Mid(y, i, 1), "") '删除报到3的倍数的号 If i = Len(y) Then y = y & s Loop For i = 0 To Len(x) - 1 If s = Mid(x, i + 1, 1) Then Print "原位置编号是" & i Next i End Sub 答案是10号,就是一开始报数报11的那个人 ...

用vb编写了这个随机抽取人名的程序,要求一个文本框,一个按钮
= Array("张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑土") n = UBound(xm) + 1 Text1.FontSize = 16 Text1 = "" Command1.Caption = "开始"End SubPrivate Sub Timer1_Timer() x = Int(Rnd * n) Text1 = xm(x)End Sub ...

运动员成绩排序,VB编程
运动员成绩排序,VB编程 10人参加运动会,运动员号和成绩如下 207号 14.5秒 077号 15.1秒 156号 14.2秒 231号 14.7秒 453号 15.2秒 276号 13.9秒 096号 15.7秒 122号 13.7秒 339号 14.9秒 302号 14.5秒 要求按成绩进行排序,并在窗体上输出名次、运动员号... 展开 ...

南木林县17819705745: 求VB编码:17人围成一圈,编号为1,2,3…,17,从第1号开始报数,报到3的倍数的人离开,一直数下去,直到最后剩下1人,求此人的编号. -
冀克升血: Private Sub Form_Activate() Dim temp() As Integer, arr() As Integer, n As Integer, m As Integer, i As Integer ReDim arr(1 To 17) For i = 1 To 17 arr(i) = i Next Do Until UBound(arr) = 2 For i = 1 To UBound(arr) If i Mod 3 = 0 Then arr(i) = 0 n = n + 1 ...

南木林县17819705745: VB:求编号?
冀克升血: Private Sub Command1_Click() a = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17) k = -1 For i = 1 To 48 k = (k + 1) Mod 17 Do If a(k) <> "" Then Exit Do Else k = (k + 1) Mod 17 End If DoEvents Loop If i Mod 3 = 0 Then a(k) = "" Next i For j = 0 To 16 If a(j) <> "" Then MsgBox a(j) Next j End Sub

南木林县17819705745: 用VB编写程序,有17个人围成一圈(编号0~16),第0号的人开始从1报数,凡是报到3的倍数的人离开圈子,然后在数下去,直到最后只剩下一个人为止.问... -
冀克升血:[答案] C的 int all=17,need=17,k=3; int x=0,y=0,i=0,j=0; int a[5001]={0}; while(1) { x=x%all+1; if(a[x]==0) { i=(i+1)%k; if(i==0) {y=y+1;a[x]=1;} } if(y==need)break; }

南木林县17819705745: 用VB编写程序,有17个人围成一圈(编号0~16),第0号的人开始从1报数,凡是报到3的倍数的人离开 -
冀克升血: C的 int all=17,need=17,k=3; int x=0,y=0,i=0,j=0; int a[5001]={0}; while(1) { x=x%all+1; if(a[x]==0) { i=(i+1)%k; if(i==0) {y=y+1;a[x]=1;} } if(y==need)break; }

南木林县17819705745: 用VB编程17人围成一圈(编号0 - 16)第0号开始从1报数,报到3的倍数的人离开直到剩下1人,求此人编号. -
冀克升血: Dim s(1 To 17) As Integer '定义s 存放17个元素 Do Until m = 16 '做以下循环直到m=16 k = k + 1 '赋值 你懂的 If k > 17 Then k = 1 '到17为一个循环 If s(k) = 0 Then '觉得是没有给出dim k=0l = l + 1 '这个 l也没给... l是不是也等于0呢? If (l Mod 3) ...

南木林县17819705745: VB习题解答有17个人围成一圈(编号0~16),第0号的人开始从1报数,凡报道3的倍数的人离开圈子,人后再数下去.直到最后剩下一个人为止.问此人原... -
冀克升血:[答案] Private Sub Command1_Click() Cls s = "0123456789ABCDEFG" y = s: x = s Do Until Len(s) = 1 i = i + 1 If i Mod 3 = 0 ... '删除报到3的倍数的号 If i = Len(y) Then y = y & s Loop For i = 0 To Len(x) - 1 If s = Mid(x, i + 1, 1) Then Print "原位置编号是" ...

南木林县17819705745: 请教用VC做:17个人围成一个圈,依次编号为1 - 17,从第1号开始报数,报到3的倍数的人离开,直到最后1人17个人围成一个圈,依次编号为1 - 17,从第1... -
冀克升血:[答案] #include void main() { short p[17]; short i,j,n=2,countdown=17; for (i=0;i

南木林县17819705745: VB 有十七个人围成一圈(编号为0~16),第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去 -
冀克升血: Private Sub Command1_Click() Form1.Cls Dim a(1 To 17) As Integer Dim i As Integer, j As Integer, k As Integer For i = 1 To 17 a(i) = i - 1 Next i = 0 j = 0 k = 17 Do While k > 1 For i = 1 To 17 If a(i) > -1 Then j = j + 1 If j = 3 Then j = 0 Print a(i) a(i) = -1...

南木林县17819705745: 有17个人围成一圈编号1~17,从第一号开始进行1,2,3报数,凡报3者就退 -
冀克升血: #include "stdio.h" main() { int a[17]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}; int n=17; int i,k=0; while(n>1) { for(i=0;i<17;i++) { if(a[i]==0) { continue; } k++; if(k%3==0) { a[i]=0; k=0; n--; } } } for(i=0;i<17;i++) { if(a[i]!=0) { break; } } printf("i am %d\n",a[i]); } 我写个while 你可以自己模仿写个for

南木林县17819705745: VB编程请教 -
冀克升血: Private Sub Command1_Click() Dim a(0 To 16) As Integer For i = 0 To 16 a(i) = 1 Next k = 17 Do While (k > 1) For i = 0 To 16 j = j + a(i) '报数 If j Mod 3 = 0 And a(i) <> 0 Thena(i) = 0 '出队Last = iPrint i; End If Next k = k - 1 Loop Print Print "最后一个人的编号是"; Last End Sub

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网