Pregunta de check-in de Niuke... Citrus...
Botella de refresco - ¿Es cierto que no puedo escribir?
Una tienda estipula que se pueden cambiar tres botellas de refresco vacías por una botella de refresco, y se permite tomar prestadas botellas de refresco vacías del jefe (pero deben devolverse).
Xiao Zhang tiene n botellas de refresco vacías en la mano y quiere saber cuántas botellas de refresco puede beber como máximo.
Rango de datos: el entero positivo de entrada satisface 1≤n≤100
Nota: Hay varios conjuntos de entradas para esta pregunta. La entrada de 0 indica el final de la entrada y el resultado no se emite .
Ejemplo de entrada:
3
10
81
0
Salida de ejemplo:
1
5
40
Ejemplo:
样例 1 解释:用三个空瓶换一瓶汽水,剩一个空瓶无法继续交换
样例 2 解释:用九个空瓶换三瓶汽水,剩四个空瓶再用三个空瓶换一瓶汽水,剩两个空瓶,向老板借一个空瓶再用三个空瓶换一瓶汽水喝完得一个空瓶还给老板
//同时 判断n%3,n//3 注意只要有两瓶就换一瓶
#include<bits/stdc++.h>
using namespace std;
int x;
int fun(int a)
{
if(a == 0 || a == 1) return 0;
if(a == 2) return 1;// 2p->1f
else
{
return int(a/3) + fun(int(a/3)+a%3);
}
}
int main()
{
while(cin>>x)
{
if(x==0) break;
int res = fun(x);
printf("%d\n",res);
}
return 0;
}
# 数学分析??? 说两个空瓶可以换一个瓶...等价代换 == > 3*空瓶 = 饮料 + 1*空瓶...
# 存在上述等式的话 可以代数验证...
# x = 2 ,空瓶两个 =>借一个空瓶 换一瓶 再还 最后能喝到0瓶
# x = 3 空瓶三个 能换一瓶 3//2 = 1 借多少都还不了
# x = 4 空瓶4个 能先换一瓶 再借2瓶 再换一瓶 最后还两瓶 能喝到0瓶...
while 1:
x = int(input())
if x == 0:
break
if x == 1:
print(0)
elif x == 2:
print(1)
else:
print(x//2)
número aleatorio obvio
Obviamente, se generan N enteros aleatorios entre 1 y 500. Elimine los números repetidos, es decir, conserve solo uno de los mismos números, elimine el resto de los mismos números y luego ordene estos números de menor a mayor y envíelos en el orden en que están dispuestos.
#include<bits/stdc++.h>
using namespace std;
const int N = 1005;
int a[N],v[N];
int n;
int main()
{
cin>>n;
for(int i=1;i<N;i++)
{
cin>>a[i];
v[a[i]]=1;
}
for(int i=1;i<N;i++)
{
if(v[i]==1)
{
printf("%d\n",i);
}
}
return 0;
}
import sys
n = int(input())
s = set()
for i in range(n):
x = int(input())
s.add(x)
l = list(s)
l = sorted(l)
for i in l:
print(i)
Conversión
Escriba un programa que tome un número hexadecimal y genere la representación decimal de ese valor.
Rango de datos: garantiza que el resultado esté dentro de 1≤n≤2^31−1
#include<bits/stdc++.h>
using namespace std;
string s;
int ans, temp, j;
int main()
{
cin>>s;
j = s.size()-3;
for(int i=2;i<s.size();i++)
{
if(s[i]<='9' && s[i]>='0')
{
temp = s[i]-'0';
ans += temp*pow(16,j);
// cout<<ans<<" "<<temp<<endl;
j-=1;
}
else if(s[i]<='F' && s[i]>='A')
{
temp = s[i] -'A'+10;
ans += temp*pow(16,j);
// cout<<ans<<" "<<temp<<endl;
j-=1;
}
}
cout<<ans<<endl;
return 0;
}
import sys
import math
s = list(input())[2:]
ans = 0
l = {
'A': 10,'B': 11,'C':12,'D':13,'E':14,'F':15}
ll = 0
for i in s[::-1]:
if i in l:
for j in l:
if i==j:
ans += l[j]*math.pow(16,ll)
else:
t = int(i)
ans+= t*math.pow(16,ll)
ll+=1
print(int(ans))
Los hechos han demostrado que python es el mejor para escribir...
pero no puedo soportarlo, soy c++