if-else 语句来计算一些变量

Posted

技术标签:

【中文标题】if-else 语句来计算一些变量【英文标题】:If-else statement to count some variable 【发布时间】:2016-04-09 05:48:21 【问题描述】:

我需要一些帮助来解决这个人在他所在城市的受欢迎程度的算法问题。

我的情况

算法应该如何工作 如果一个人“标记”在他所在城市的 500,000 个朋友中有 500 个。

(500/500,000)*50,000 = 5

所以550,000 的人都认识他。

但是当朋友数增加时,50,000 应该会减少

如果“sam”有 1000 个朋友,那么

(1000/500,000)*25000 = 5

所以525000 中的人都知道他的名字

是的,我们可以在if/else 条件下实现它 如果是这样,那么我必须编写 500 行代码。

php 中还有其他方法可以做到这一点吗?

<?php 
    $totalfriends = 100; 
    $totali = 5000000;
    $name = "Sam";


    if ($totalfriends >= 100 && $totalfriends <= 499 ) 
     $r = ($totalfriends/$totali)*50000;
    echo  round($r),' ',"in 50K People on City regonize this Profile";
    else if ($totalfriends >= 500 && $totalfriends <= 999) 
    $r = ($totalfriends/$totali)*25000;
    echo  round($r),' ',"in 25K People on City know".$name;
    else
  echo "";
 
?>

【问题讨论】:

您应该开始阅读有关 php 和一般编程的更多信息。恐怕你连基本的数据结构(数组)和控制结构(while循环、do循环等)都不了解。在询问之前阅读有关编程的更多信息。 @MayankVadiya 我没有任何代码。我有一些 PHP if/else 语句。给我一个想法如何在 For 循环中实现。或者我必须发布我的 if/else陈述 发布您的代码,或者更确切地说是您的代码示例 然后我们可以查看我们正在处理的内容并提出建议。否则,我们无法提供帮助,因为所写的问题并没有真正详细地描述您实际处理的内容。 PS 通过编辑将代码添加到您的问题中! 您应该在数据库中进行过滤,而不是在 PHP 中。 【参考方案1】:

这就是你要找的吗?

foreach([100, 500, 543, 1000, 5000, 51000, 500000] as $my_friends)
   echo '5 in '. getScoreOf($my_friends) . "<br>";

function getScoreOf($my_friends)
   $of = 5;
   $total = 5e5; //that's 500,000 ;)
   $step = 100; //minimum step, so output is not "4604" but "4600"
   $out_of = $total / $my_friends * $of;
   return $out_of > $step? round($out_of / $step) * $step: round($out_of);


run it in sandbox


编辑:与原始代码合并的解决方案

<?php
$of = 5;
$totalfriends = 100; 
$name = "Sam";
echo $of ." in ". getScoreOf($of, $totalfriends) ." people in city know ". $name;

function getScoreOf($of, $my_friends)
   $total = 5e6; //that's 5,000,000 ;)
   $step = 100; //minimum step, so output is not "4604" but "4600"
   $out_of = $total / $my_friends * $of;
   return $out_of > $step? round($out_of / $step) * $step: round($out_of);

【讨论】:

尽管比您的回复人投票更多!确实可以,但我只需要单个输出。 只有单个输出?在需要的地方使用 getScoreOf 函数,不要使用“foreach” :) foreach 仅用于测试目的;) 我已经编辑了我的答案,所以你可以看到你的代码的实际用法。接受答案就足够了,很乐意提供帮助。 它正在工作。你知道我是 PHP 新手,你能解释一下这行吗$out_of &gt; $step? round($out_of / $step) * $step: round($out_of); 这是三元运算符 $res=($out_of > $step ? round($out_of / $step) * $step : round($out_of));回声 $res; @Bajwakapoor

以上是关于if-else 语句来计算一些变量的主要内容,如果未能解决你的问题,请参考以下文章

Python从入门到进阶9流程控制语句-条件语句(if-else)

如何替换多个 if-else 语句来优化代码?

switch语句和switch-case与if-else之间的转换

If-else语句基于先前的活动选择来获取共享偏好

Javascript 中多个条件的 If-Else 语句

如何在没有错误的情况下制作if-else语句?